feat(state): wire enqueueAction through runtime and view model

This commit is contained in:
ginnoir
2026-06-11 18:21:12 -05:00
parent 7625e081fd
commit fce561b8e5
5 changed files with 38 additions and 8 deletions
+6
View File
@@ -18,6 +18,8 @@ export interface GameView {
actionName: string | null;
/** Progress of the active action, clamped to 0..1. */
actionProgress: number;
queuedActionIds: string[];
queuedActionNames: string[];
}
export function toView(state: GameState, content: Content): GameView {
@@ -29,12 +31,16 @@ export function toView(state: GameState, content: Content): GameView {
const action = state.activeActionId ? content.actionsById[state.activeActionId] : undefined;
const actionProgress = action ? Math.min(1, state.actionElapsedMs / action.durationMs) : 0;
const queuedActionIds = [...state.actionQueue];
const queuedActionNames = queuedActionIds.map((id) => content.actionsById[id]?.name ?? id);
return {
resources,
activeActionId: state.activeActionId,
actionName: action ? action.name : null,
actionProgress,
queuedActionIds,
queuedActionNames,
};
}