summaryrefslogtreecommitdiff
path: root/src/engine/entities/Grass.ts
diff options
context:
space:
mode:
authorElizabeth Hunt <elizabeth.hunt@simponic.xyz>2024-03-07 22:49:43 -0700
committerElizabeth Hunt <elizabeth.hunt@simponic.xyz>2024-03-07 22:49:43 -0700
commitebae24f5a3a251654a1e41be58f52ba2a777d9d7 (patch)
tree6641c3e5a5ec5d812c54be2bb38196f85f4e36c2 /src/engine/entities/Grass.ts
parent808a44e8542ebc7542d833e5a30b51b7fb8f80d5 (diff)
downloadthe-abstraction-engine-ebae24f5a3a251654a1e41be58f52ba2a777d9d7.tar.gz
the-abstraction-engine-ebae24f5a3a251654a1e41be58f52ba2a777d9d7.zip
level system!
Diffstat (limited to 'src/engine/entities/Grass.ts')
-rw-r--r--src/engine/entities/Grass.ts27
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,
+ ),
+ );
+ }
+}