summaryrefslogtreecommitdiff
path: root/client/lib/entities
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 /client/lib/entities
parent0fd9fb097552686f2257c1aa689d797e80057bd1 (diff)
downloadjumpstorm-72c6c7de12e9833f52bf2d0718d70f044f8ab57e.tar.gz
jumpstorm-72c6c7de12e9833f52bf2d0718d70f044f8ab57e.zip
a bit of refactoring; importing engine into bun for server
Diffstat (limited to 'client/lib/entities')
-rw-r--r--client/lib/entities/Entity.ts33
-rw-r--r--client/lib/entities/Floor.ts31
-rw-r--r--client/lib/entities/Player.ts68
-rw-r--r--client/lib/entities/index.ts3
4 files changed, 0 insertions, 135 deletions
diff --git a/client/lib/entities/Entity.ts b/client/lib/entities/Entity.ts
deleted file mode 100644
index e57ccde..0000000
--- a/client/lib/entities/Entity.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import type { Component } from "../components";
-import { ComponentNotFoundError } from "../exceptions";
-
-export abstract class Entity {
- private static ID = 0;
-
- public readonly id: number;
- public readonly components: Map<string, Component>;
-
- constructor() {
- this.id = Entity.ID++;
- this.components = new Map();
- }
-
- public addComponent(component: Component) {
- this.components.set(component.name, component);
- }
-
- public getComponent<T extends Component>(name: string): T {
- if (!this.hasComponent(name)) {
- throw new Error("Entity does not have component " + name);
- }
- return this.components.get(name) as T;
- }
-
- public getComponents(): Component[] {
- return Array.from(this.components.values());
- }
-
- public hasComponent(name: string): boolean {
- return this.components.has(name);
- }
-}
diff --git a/client/lib/entities/Floor.ts b/client/lib/entities/Floor.ts
deleted file mode 100644
index d51badc..0000000
--- a/client/lib/entities/Floor.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-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());
- }
-}
diff --git a/client/lib/entities/Player.ts b/client/lib/entities/Player.ts
deleted file mode 100644
index 0ba5a41..0000000
--- a/client/lib/entities/Player.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-import { Entity } from ".";
-import { IMAGES, SPRITE_SPECS, Sprites, type SpriteSpec } from "../config";
-import {
- Jump,
- FacingDirection,
- BoundingBox,
- Sprite,
- Velocity,
- Gravity,
- WallBounded,
- Forces,
- Collide,
- Control,
- Mass,
- Moment,
-} from "../components";
-import { PhysicsConstants } from "../config";
-import { Direction } from "../interfaces";
-
-export class Player extends Entity {
- private static MASS: number = 10;
- private static MOI: number = 1000;
-
- private static spriteSpec: SpriteSpec = SPRITE_SPECS.get(Sprites.COFFEE);
-
- constructor() {
- super();
-
- this.addComponent(
- new BoundingBox(
- { x: 300, y: 100 },
- { width: Player.spriteSpec.width, height: Player.spriteSpec.height },
- 0
- )
- );
-
- this.addComponent(new Velocity({ dx: 0, dy: 0 }, 0));
-
- this.addComponent(new Mass(Player.MASS));
- this.addComponent(new Moment(Player.MOI));
- this.addComponent(new Forces());
- this.addComponent(new Gravity());
-
- this.addComponent(new Jump());
- this.addComponent(new Control());
-
- this.addComponent(new Collide());
- this.addComponent(new WallBounded());
-
- this.addFacingDirectionComponents();
- }
-
- private addFacingDirectionComponents() {
- const [leftSprite, rightSprite] = [Direction.LEFT, Direction.RIGHT].map(
- (direction) =>
- new Sprite(
- IMAGES.get(Player.spriteSpec.states[direction].sheet),
- { x: 0, y: 0 },
- { width: Player.spriteSpec.width, height: Player.spriteSpec.height },
- Player.spriteSpec.msPerFrame,
- Player.spriteSpec.frames
- )
- );
-
- this.addComponent(new FacingDirection(leftSprite, rightSprite));
- this.addComponent(leftSprite); // face Left by default
- }
-}
diff --git a/client/lib/entities/index.ts b/client/lib/entities/index.ts
deleted file mode 100644
index a921512..0000000
--- a/client/lib/entities/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export * from "./Entity";
-export * from "./Floor";
-export * from "./Player";