export enum Sprites { FLOOR, TRAMPOLINE, COFFEE } export interface SpriteSpec { sheet: string; width: number; height: number; frames: number; msPerFrame: number; states?: Map>; } export const SPRITE_SPECS: Map> = new Map< Sprites, SpriteSpec >(); const floorSpriteSpec = { height: 40, frames: 3, msPerFrame: 125, states: new Map>() }; [40, 80, 120, 160].forEach((width) => { floorSpriteSpec.states.set(width, { width, sheet: `/assets/floor_tile_${width}.png` }); }); SPRITE_SPECS.set(Sprites.FLOOR, floorSpriteSpec); const coffeeSpriteSpec = { msPerFrame: 100, width: 60, height: 45, frames: 3, states: new Map>() }; coffeeSpriteSpec.states.set('LEFT', { sheet: '/assets/coffee_left.png' }); coffeeSpriteSpec.states.set('RIGHT', { sheet: '/assets/coffee_right.png' }); SPRITE_SPECS.set(Sprites.COFFEE, coffeeSpriteSpec);