Restore entity animations and processes

This commit is contained in:
Schluffe
2026-03-11 00:20:25 +01:00
parent a81542354b
commit fefb545f7a
6 changed files with 144 additions and 114 deletions
+27 -1
View File
@@ -1,6 +1,14 @@
import { listenKeyboard } from "#/engine/Keyboard.ts";
import { listenPointer } from "#/engine/Pointer.ts";
import { currentScene, setScene } from "#/engine/Scene.ts";
import $, { currentScene, setScene } from "#/engine/Scene.ts";
import {
animateSprite,
drawSprite,
type Sprite,
type SpritePlayback,
spriteSheetMap,
} from "#/engine/Sprite.ts";
import type { Vector } from "#/engine/Vector.ts";
import {
initViewport,
resetCtx,
@@ -16,6 +24,24 @@ function animate(timestamp: number): void {
resetCtx();
currentScene.process(viewport.ctx, delta);
for (const [id, playback] of $<SpritePlayback>("playback").entries()) {
const sprite = $<Sprite>("sprite").get(id)!;
animateSprite(sprite.value, playback.value, delta);
}
for (const [id, sprite] of $<Sprite>("sprite").entries()) {
const position = $<Vector>("position").get(id)!;
drawSprite(
viewport.ctx,
spriteSheetMap.get(sprite.value.src)!,
sprite.value.xStart,
sprite.value.yStart,
position.value.x,
position.value.y,
);
}
requestAnimationFrame(animate);
}