From 8ec7f5368232d59f344e1067e1bad5e48dbcb7ae Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Sat, 7 Sep 2024 20:20:07 -0700 Subject: get "cats" up there --- static/src/engine/entity.ts | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 static/src/engine/entity.ts (limited to 'static/src/engine/entity.ts') diff --git a/static/src/engine/entity.ts b/static/src/engine/entity.ts new file mode 100644 index 0000000..2c8d38e --- /dev/null +++ b/static/src/engine/entity.ts @@ -0,0 +1,45 @@ +import { + Component, + ComponentType, + PositionComponent, + RenderableComponent, + TrailingPositionComponent, +} from "./component"; + +export enum EntityType { + LASER = "LASER", + CAT = "CAT", +} + +export interface Entity { + entity_type: EntityType; + id: string; + components: Record; +} + +export const create_laser = (base: Entity) => { + const trailing_position: TrailingPositionComponent = { + name: ComponentType.TRAILING_POSITION, + trails: [], + }; + base.components[ComponentType.TRAILING_POSITION] = trailing_position; + + const renderable: RenderableComponent = { + name: ComponentType.RENDERABLE, + }; + base.components[ComponentType.RENDERABLE] = renderable; + return base; +}; + +export const create_cat = (base: Entity) => { + const renderable: RenderableComponent = { + name: ComponentType.RENDERABLE, + }; + base.components[ComponentType.RENDERABLE] = renderable; + base.components[ComponentType.POSITION] = { + component: ComponentType.POSITION, + x: Math.random() * 1_000, + y: Math.random() * 1_000, + } as unknown as PositionComponent; // TODO: hack + return base; +}; -- cgit v1.3