diff options
author | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2024-03-01 22:04:57 -0700 |
---|---|---|
committer | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2024-03-01 22:04:57 -0700 |
commit | 55024f44c3713049c68e4f3f23ecdc3633cd4a24 (patch) | |
tree | 5989a20209f7b1e3a06f2eeca70b56a9bd2f7995 /src/engine/entities | |
parent | c3242b171cdbb36a26fda04c7148b9b40a5f5c33 (diff) | |
download | the-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.ts | 1 | ||||
-rw-r--r-- | src/engine/entities/FunctionBox.ts | 43 | ||||
-rw-r--r-- | src/engine/entities/index.ts | 1 |
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"; |