import { Entity, EntityNames } from "."; import { BoundingBox, Grid, Pushable, Sprite } from "../components"; import { IMAGES, SPRITE_SPECS, SpriteSpec, Sprites } from "../config"; import { Coord2D } from "../interfaces"; export class Key extends Entity { private static spriteSpec: SpriteSpec = SPRITE_SPECS.get( Sprites.KEY ) as SpriteSpec; constructor(gridPosition: Coord2D) { super(EntityNames.Key); this.addComponent(new Grid(gridPosition)); this.addComponent(new Pushable()); this.addComponent( new BoundingBox( { x: 0, y: 0, }, { width: Key.spriteSpec.width, height: Key.spriteSpec.height, }, 0 ) ); this.addComponent( new Sprite( IMAGES.get(Key.spriteSpec.sheet)!, { x: 0, y: 0 }, { width: Key.spriteSpec.width, height: Key.spriteSpec.height, }, Key.spriteSpec.msPerFrame, Key.spriteSpec.frames ) ); } }