From cbb88091bdf69cc8752ef1cc3662dc0b99e3ead6 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Sat, 2 Mar 2024 05:30:17 -0700 Subject: key lock / player curry collisions --- src/engine/entities/Key.ts | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/engine/entities/Key.ts (limited to 'src/engine/entities/Key.ts') diff --git a/src/engine/entities/Key.ts b/src/engine/entities/Key.ts new file mode 100644 index 0000000..7168ee8 --- /dev/null +++ b/src/engine/entities/Key.ts @@ -0,0 +1,45 @@ +import { Entity, EntityNames } from "."; +import { BoundingBox, Grid, Pushable, Sprite } from "../components"; +import { IMAGES, SPRITE_SPECS, SpriteSpec, Sprites } from "../config"; +import { Coord2D } from "../interfaces"; + +export class Key extends Entity { + private static spriteSpec: SpriteSpec = SPRITE_SPECS.get( + Sprites.KEY, + ) as SpriteSpec; + + constructor(gridPosition: Coord2D) { + super(EntityNames.Key); + + this.addComponent(new Grid(gridPosition)); + + this.addComponent(new Pushable()); + + this.addComponent( + new BoundingBox( + { + x: 0, + y: 0, + }, + { + width: Key.spriteSpec.width, + height: Key.spriteSpec.height, + }, + 0, + ), + ); + + this.addComponent( + new Sprite( + IMAGES.get(Key.spriteSpec.sheet)!, + { x: 0, y: 0 }, + { + width: Key.spriteSpec.width, + height: Key.spriteSpec.height, + }, + Key.spriteSpec.msPerFrame, + Key.spriteSpec.frames, + ), + ); + } +} -- cgit v1.2.3-70-g09d2