summaryrefslogtreecommitdiff
path: root/src/engine/entities
diff options
context:
space:
mode:
authorElizabeth Hunt <elizabeth.hunt@simponic.xyz>2024-03-01 22:04:57 -0700
committerElizabeth Hunt <elizabeth.hunt@simponic.xyz>2024-03-01 22:04:57 -0700
commit55024f44c3713049c68e4f3f23ecdc3633cd4a24 (patch)
tree5989a20209f7b1e3a06f2eeca70b56a9bd2f7995 /src/engine/entities
parentc3242b171cdbb36a26fda04c7148b9b40a5f5c33 (diff)
downloadthe-abstraction-engine-55024f44c3713049c68e4f3f23ecdc3633cd4a24.tar.gz
the-abstraction-engine-55024f44c3713049c68e4f3f23ecdc3633cd4a24.zip
add function box entity
Diffstat (limited to 'src/engine/entities')
-rw-r--r--src/engine/entities/EntityNames.ts1
-rw-r--r--src/engine/entities/FunctionBox.ts43
-rw-r--r--src/engine/entities/index.ts1
3 files changed, 45 insertions, 0 deletions
diff --git a/src/engine/entities/EntityNames.ts b/src/engine/entities/EntityNames.ts
index e2f642a..1a4c1ed 100644
--- a/src/engine/entities/EntityNames.ts
+++ b/src/engine/entities/EntityNames.ts
@@ -1,3 +1,4 @@
export namespace EntityNames {
export const Player = "Player";
+ export const FunctionBox = "FunctionBox";
}
diff --git a/src/engine/entities/FunctionBox.ts b/src/engine/entities/FunctionBox.ts
new file mode 100644
index 0000000..e6c41c2
--- /dev/null
+++ b/src/engine/entities/FunctionBox.ts
@@ -0,0 +1,43 @@
+import { IMAGES, SPRITE_SPECS, SpriteSpec, Sprites } from "../config";
+import { Entity, EntityNames } from ".";
+import { BoundingBox, Grid, Sprite } from "../components";
+import { Coord2D } from "../interfaces";
+
+export class FunctionBox extends Entity {
+ private static spriteSpec: SpriteSpec = SPRITE_SPECS.get(
+ Sprites.FUNCTION_BOX,
+ ) as SpriteSpec;
+
+ constructor(gridPosition: Coord2D) {
+ super(EntityNames.FunctionBox);
+
+ this.addComponent(
+ new BoundingBox(
+ {
+ x: 0,
+ y: 0,
+ },
+ {
+ width: FunctionBox.spriteSpec.width,
+ height: FunctionBox.spriteSpec.height,
+ },
+ 0,
+ ),
+ );
+
+ this.addComponent(new Grid(true, gridPosition));
+
+ this.addComponent(
+ new Sprite(
+ IMAGES.get(FunctionBox.spriteSpec.sheet)!,
+ { x: 0, y: 0 },
+ {
+ width: FunctionBox.spriteSpec.width,
+ height: FunctionBox.spriteSpec.height,
+ },
+ FunctionBox.spriteSpec.msPerFrame,
+ FunctionBox.spriteSpec.frames,
+ ),
+ );
+ }
+}
diff --git a/src/engine/entities/index.ts b/src/engine/entities/index.ts
index 13dd57a..d6a8aed 100644
--- a/src/engine/entities/index.ts
+++ b/src/engine/entities/index.ts
@@ -1,3 +1,4 @@
export * from "./Entity";
export * from "./EntityNames";
export * from "./Player";
+export * from "./FunctionBox";