summaryrefslogtreecommitdiff
path: root/engine/entities/Floor.ts
diff options
context:
space:
mode:
authorElizabeth Hunt <elizabeth.hunt@simponic.xyz>2023-07-20 20:47:32 -0700
committerElizabeth Hunt <elizabeth.hunt@simponic.xyz>2023-07-20 20:47:32 -0700
commit72c6c7de12e9833f52bf2d0718d70f044f8ab57e (patch)
tree152f5f31d59011bb8c617bfbcfc44cc8f47ecad5 /engine/entities/Floor.ts
parent0fd9fb097552686f2257c1aa689d797e80057bd1 (diff)
downloadjumpstorm-72c6c7de12e9833f52bf2d0718d70f044f8ab57e.tar.gz
jumpstorm-72c6c7de12e9833f52bf2d0718d70f044f8ab57e.zip
a bit of refactoring; importing engine into bun for server
Diffstat (limited to 'engine/entities/Floor.ts')
-rw-r--r--engine/entities/Floor.ts31
1 files changed, 31 insertions, 0 deletions
diff --git a/engine/entities/Floor.ts b/engine/entities/Floor.ts
new file mode 100644
index 0000000..d51badc
--- /dev/null
+++ b/engine/entities/Floor.ts
@@ -0,0 +1,31 @@
+import { IMAGES, SPRITE_SPECS, Sprites, type SpriteSpec } from "../config";
+import { BoundingBox, Sprite } from "../components";
+import { TopCollidable } from "../components/TopCollidable";
+import { Entity } from "../entities";
+
+export class Floor extends Entity {
+ private static spriteSpec: SpriteSpec = SPRITE_SPECS.get(Sprites.FLOOR);
+
+ constructor(width: number) {
+ super();
+
+ this.addComponent(
+ new Sprite(
+ IMAGES.get(Floor.spriteSpec.states[width].sheet),
+ { x: 0, y: 0 },
+ { width, height: Floor.spriteSpec.height },
+ Floor.spriteSpec.msPerFrame,
+ Floor.spriteSpec.frames
+ )
+ );
+
+ this.addComponent(
+ new BoundingBox(
+ { x: 300, y: 300 },
+ { width, height: Floor.spriteSpec.height }
+ )
+ );
+
+ this.addComponent(new TopCollidable());
+ }
+}