diff options
Diffstat (limited to 'src/engine/entities/Grass.ts')
-rw-r--r-- | src/engine/entities/Grass.ts | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/engine/entities/Grass.ts b/src/engine/entities/Grass.ts new file mode 100644 index 0000000..70fd601 --- /dev/null +++ b/src/engine/entities/Grass.ts @@ -0,0 +1,27 @@ +import { Entity, EntityNames } from "."; +import { Grid, Sprite } from "../components"; +import { IMAGES, SPRITE_SPECS, SpriteSpec, Sprites } from "../config"; +import { Coord2D } from "../interfaces"; + +export class Grass extends Entity { + private static spriteSpec = SPRITE_SPECS.get(Sprites.GRASS) as SpriteSpec; + + constructor(gridPosition: Coord2D) { + super(EntityNames.Grass); + + this.addComponent(new Grid(gridPosition)); + + this.addComponent( + new Sprite( + IMAGES.get(Grass.spriteSpec.sheet)!, + { x: 0, y: 0 }, + { + width: Grass.spriteSpec.width, + height: Grass.spriteSpec.height, + }, + Grass.spriteSpec.msPerFrame, + Grass.spriteSpec.frames, + ), + ); + } +} |