aboutsummaryrefslogtreecommitdiff
path: root/static/src/engine/component.ts
diff options
context:
space:
mode:
authorElizabeth Hunt <elizabeth@simponic.xyz>2024-09-14 22:33:35 -0700
committerElizabeth Hunt <elizabeth@simponic.xyz>2024-09-14 22:33:35 -0700
commitf7e7121fce7bd3f7fdabe836955e43b3d194c1c6 (patch)
tree7092421f8a594f62164192d27df69220edda223c /static/src/engine/component.ts
parent8ec7f5368232d59f344e1067e1bad5e48dbcb7ae (diff)
downloadkennel.hatecomputers.club-f7e7121fce7bd3f7fdabe836955e43b3d194c1c6.tar.gz
kennel.hatecomputers.club-f7e7121fce7bd3f7fdabe836955e43b3d194c1c6.zip
add a spritesheet component
Diffstat (limited to 'static/src/engine/component.ts')
-rw-r--r--static/src/engine/component.ts22
1 files changed, 22 insertions, 0 deletions
diff --git a/static/src/engine/component.ts b/static/src/engine/component.ts
index 9607fec..a16215b 100644
--- a/static/src/engine/component.ts
+++ b/static/src/engine/component.ts
@@ -2,6 +2,7 @@ export enum ComponentType {
POSITION = "POSITION",
RENDERABLE = "RENDERABLE",
TRAILING_POSITION = "TRAILING_POSITION",
+ SPRITESHEET = "SPRITESHEET",
}
export interface Component {
@@ -22,3 +23,24 @@ export interface TrailingPositionComponent extends Component {
export interface RenderableComponent extends Component {
name: ComponentType.RENDERABLE;
}
+
+export interface SpriteSpec {
+ ms_per_frame: number;
+ frames: number;
+ top_x: number;
+ top_y: number;
+ end_x: number;
+ end_y: number;
+}
+
+export interface SpriteSheetComponent extends Component {
+ name: ComponentType.SPRITESHEET;
+ source: string;
+ sheet: HTMLImageElement;
+
+ current_frame: number;
+ last_update: number;
+ current_state: string;
+
+ state_to_spritespec: Record<string, SpriteSpec>;
+}