169 lines
4.3 KiB
JavaScript
169 lines
4.3 KiB
JavaScript
import { EntityType, AnimationState } from './Constants.js';
|
|
|
|
/**
|
|
* Sprite Library defining pixel art grids as 2D arrays.
|
|
* 0: Transparent
|
|
* 1: Primary Color (Entity Color)
|
|
* 2: Highlight (White / Shine)
|
|
* 3: Detail/Shade (Darker Blue / Eyes)
|
|
*/
|
|
export const SpriteLibrary = {
|
|
// 8x8 Slime - Bottom-heavy blob
|
|
[EntityType.SLIME]: {
|
|
[AnimationState.IDLE]: [
|
|
[
|
|
[0, 0, 0, 0, 0, 0, 0, 0],
|
|
[0, 0, 1, 1, 1, 1, 0, 0], // Top
|
|
[0, 1, 1, 1, 1, 1, 1, 0],
|
|
[1, 1, 2, 1, 1, 2, 1, 1], // Highlights
|
|
[1, 1, 3, 1, 1, 3, 1, 1], // Eyes
|
|
[1, 1, 1, 1, 1, 1, 1, 1],
|
|
[1, 1, 1, 1, 1, 1, 1, 1],
|
|
[0, 1, 1, 1, 1, 1, 1, 0] // Flat-ish base
|
|
],
|
|
[
|
|
[0, 0, 0, 0, 0, 0, 0, 0],
|
|
[0, 0, 0, 0, 0, 0, 0, 0],
|
|
[0, 0, 1, 1, 1, 1, 0, 0],
|
|
[0, 1, 1, 1, 1, 1, 1, 0],
|
|
[1, 1, 2, 1, 1, 2, 1, 1],
|
|
[1, 1, 3, 1, 1, 3, 1, 1],
|
|
[1, 1, 1, 1, 1, 1, 1, 1],
|
|
[1, 1, 1, 1, 1, 1, 1, 1] // Squashed base
|
|
]
|
|
],
|
|
[AnimationState.WALK]: [
|
|
[
|
|
[0, 0, 1, 1, 1, 1, 0, 0],
|
|
[0, 1, 1, 1, 1, 1, 1, 0],
|
|
[1, 1, 2, 1, 1, 2, 1, 1],
|
|
[1, 1, 3, 1, 1, 3, 1, 1],
|
|
[1, 1, 1, 1, 1, 1, 1, 1],
|
|
[1, 1, 1, 1, 1, 1, 1, 1],
|
|
[1, 3, 1, 1, 1, 1, 3, 1],
|
|
[0, 1, 1, 1, 1, 1, 1, 0]
|
|
],
|
|
[
|
|
[0, 0, 0, 0, 0, 0, 0, 0],
|
|
[0, 0, 1, 1, 1, 1, 0, 0],
|
|
[0, 1, 1, 1, 1, 1, 1, 0],
|
|
[1, 1, 2, 1, 1, 2, 1, 1],
|
|
[1, 1, 3, 1, 1, 3, 1, 1],
|
|
[1, 1, 1, 1, 1, 1, 1, 1],
|
|
[1, 1, 1, 1, 1, 1, 1, 1],
|
|
[1, 1, 1, 1, 1, 1, 1, 1]
|
|
]
|
|
]
|
|
},
|
|
|
|
// 8x8 Humanoid - Simple Walk Cycle
|
|
[EntityType.HUMANOID]: {
|
|
[AnimationState.IDLE]: [
|
|
[
|
|
[0, 0, 0, 1, 1, 0, 0, 0],
|
|
[0, 0, 2, 1, 1, 2, 0, 0],
|
|
[0, 0, 0, 1, 1, 0, 0, 0],
|
|
[0, 1, 1, 1, 1, 1, 1, 0],
|
|
[1, 0, 2, 1, 1, 2, 0, 1],
|
|
[1, 0, 1, 1, 1, 1, 0, 1],
|
|
[0, 0, 1, 0, 0, 1, 0, 0],
|
|
[0, 0, 1, 0, 0, 1, 0, 0]
|
|
]
|
|
],
|
|
[AnimationState.WALK]: [
|
|
[
|
|
[0, 0, 0, 1, 1, 0, 0, 0],
|
|
[0, 0, 2, 1, 1, 2, 0, 0],
|
|
[0, 0, 0, 1, 1, 0, 0, 0],
|
|
[0, 1, 1, 1, 1, 1, 1, 0],
|
|
[0, 0, 2, 1, 1, 2, 0, 1],
|
|
[0, 0, 1, 1, 1, 1, 0, 1],
|
|
[0, 0, 1, 0, 0, 0, 0, 0],
|
|
[0, 1, 1, 0, 0, 0, 0, 0]
|
|
],
|
|
[
|
|
[0, 0, 0, 1, 1, 0, 0, 0],
|
|
[0, 0, 2, 1, 1, 2, 0, 0],
|
|
[0, 0, 0, 1, 1, 0, 0, 0],
|
|
[0, 1, 1, 1, 1, 1, 1, 0],
|
|
[1, 0, 2, 1, 1, 2, 0, 0],
|
|
[1, 0, 1, 1, 1, 1, 0, 0],
|
|
[0, 0, 0, 0, 0, 1, 0, 0],
|
|
[0, 0, 0, 0, 0, 1, 1, 0]
|
|
]
|
|
]
|
|
},
|
|
|
|
// 8x8 Beast - Bounding Cycle
|
|
[EntityType.BEAST]: {
|
|
[AnimationState.IDLE]: [
|
|
[
|
|
[0, 0, 0, 0, 0, 0, 0, 0],
|
|
[1, 0, 0, 0, 0, 0, 0, 1],
|
|
[0, 1, 1, 1, 1, 1, 1, 0],
|
|
[1, 3, 1, 1, 1, 1, 3, 1],
|
|
[1, 1, 1, 1, 1, 1, 1, 1],
|
|
[0, 1, 1, 2, 2, 1, 1, 0],
|
|
[0, 1, 0, 0, 0, 0, 1, 0],
|
|
[0, 1, 0, 0, 0, 0, 1, 0]
|
|
]
|
|
],
|
|
[AnimationState.WALK]: [
|
|
[
|
|
[1, 0, 0, 0, 0, 0, 0, 1],
|
|
[0, 1, 1, 1, 1, 1, 1, 0],
|
|
[1, 3, 1, 1, 1, 1, 3, 1],
|
|
[1, 1, 1, 1, 1, 1, 1, 1],
|
|
[0, 1, 1, 2, 2, 1, 1, 0],
|
|
[0, 1, 0, 0, 0, 0, 1, 0],
|
|
[1, 1, 0, 0, 0, 0, 1, 1],
|
|
[0, 0, 0, 0, 0, 0, 0, 0]
|
|
],
|
|
[
|
|
[0, 0, 0, 0, 0, 0, 0, 0],
|
|
[1, 0, 0, 0, 0, 0, 0, 1],
|
|
[0, 1, 1, 1, 1, 1, 1, 0],
|
|
[1, 3, 1, 1, 1, 1, 3, 1],
|
|
[1, 1, 1, 1, 1, 1, 1, 1],
|
|
[0, 1, 1, 2, 2, 1, 1, 0],
|
|
[0, 0, 1, 0, 0, 1, 0, 0],
|
|
[0, 0, 1, 0, 0, 1, 0, 0]
|
|
]
|
|
]
|
|
},
|
|
|
|
// 8x8 Elemental - Floating Pulse
|
|
[EntityType.ELEMENTAL]: {
|
|
[AnimationState.IDLE]: [
|
|
[
|
|
[0, 0, 2, 1, 1, 2, 0, 0],
|
|
[0, 1, 1, 2, 2, 1, 1, 0],
|
|
[1, 2, 1, 1, 1, 1, 2, 1],
|
|
[1, 1, 3, 3, 3, 3, 1, 1],
|
|
[1, 1, 1, 3, 3, 1, 1, 1],
|
|
[0, 1, 1, 1, 1, 1, 1, 0],
|
|
[0, 0, 1, 1, 1, 1, 0, 0],
|
|
[0, 0, 0, 1, 1, 0, 0, 0]
|
|
],
|
|
[
|
|
[0, 0, 0, 0, 0, 0, 0, 0],
|
|
[0, 0, 2, 1, 1, 2, 0, 0],
|
|
[0, 1, 1, 2, 2, 1, 1, 0],
|
|
[1, 2, 3, 3, 3, 3, 2, 1],
|
|
[1, 1, 1, 3, 3, 1, 1, 1],
|
|
[0, 1, 1, 1, 1, 1, 1, 0],
|
|
[0, 0, 1, 1, 1, 1, 0, 0],
|
|
[0, 0, 0, 1, 1, 0, 0, 0]
|
|
]
|
|
]
|
|
},
|
|
|
|
[EntityType.PROJECTILE]: {
|
|
[AnimationState.IDLE]: [
|
|
[
|
|
[1, 1],
|
|
[1, 1]
|
|
]
|
|
]
|
|
}
|
|
};
|