diff options
| author | Elizabeth Hunt <elizabeth@simponic.xyz> | 2024-09-14 22:33:35 -0700 |
|---|---|---|
| committer | Elizabeth Hunt <elizabeth@simponic.xyz> | 2024-09-14 22:33:35 -0700 |
| commit | f7e7121fce7bd3f7fdabe836955e43b3d194c1c6 (patch) | |
| tree | 7092421f8a594f62164192d27df69220edda223c /static/src/engine/component.ts | |
| parent | 8ec7f5368232d59f344e1067e1bad5e48dbcb7ae (diff) | |
| download | kennel.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.ts | 22 |
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>; +} |
