From 8df87aafcd6cd7f33c3f151c050d605868cbb759 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Tue, 28 Apr 2026 17:58:48 +0200 Subject: [PATCH] Add utilities for comparing draft data and summarizing simulation snapshots --- src/app/App.tsx | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/app/App.tsx b/src/app/App.tsx index a2268b31..cf8e1ea4 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -925,6 +925,45 @@ function createPlayerStartMovementTemplateNumberDraft( }; } +function arePlayerStartMovementTemplateNumberDraftsEqual( + left: PlayerStartMovementTemplateNumberDraft, + right: PlayerStartMovementTemplateNumberDraft +): boolean { + return ( + left.moveSpeed === right.moveSpeed && + left.maxSpeed === right.maxSpeed && + left.maxStepHeight === right.maxStepHeight && + left.jumpSpeed === right.jumpSpeed && + left.jumpBufferMs === right.jumpBufferMs && + left.coyoteTimeMs === right.coyoteTimeMs && + left.variableJumpMaxHoldMs === right.variableJumpMaxHoldMs && + left.bunnyHopBoost === right.bunnyHopBoost && + left.sprintSpeedMultiplier === right.sprintSpeedMultiplier && + left.crouchSpeedMultiplier === right.crouchSpeedMultiplier + ); +} + +function summarizeEditorSimulationUiSnapshotForTrace( + snapshot: EditorSimulationUiSnapshot +) { + return { + playing: snapshot.playing, + overrideActive: snapshot.overrideActive, + sceneReady: snapshot.sceneReady, + sceneVersion: snapshot.sceneVersion, + frameVersion: snapshot.frameVersion, + message: snapshot.message, + clock: + snapshot.clock === null + ? null + : { + dayCount: snapshot.clock.dayCount, + timeOfDayHours: snapshot.clock.timeOfDayHours, + dayLengthMinutes: snapshot.clock.dayLengthMinutes + } + }; +} + function readVec2Draft(draft: Vec2Draft, label: string): Vec2 { if (draft.x.trim().length === 0 || draft.y.trim().length === 0) { throw new Error(`${label} values must be provided.`);