summaryrefslogtreecommitdiff
path: root/src/LivingVillage.Desktop/Game.fs
diff options
context:
space:
mode:
authorSomhairle H. Marisol <[email protected]>2026-09-22 00:50:30 +0800
committerSomhairle H. Marisol <[email protected]>2026-09-22 00:50:30 +0800
commit8fad58bd62155da653251ab7457cd54ebba0b279 (patch)
treea425dc6bf963fe614aeb28cc80823d7c69b76904 /src/LivingVillage.Desktop/Game.fs
parente9d3e224e802ec41b9f565f5e8ed7eec8470a310 (diff)
downloadliving-village-8fad58bd62155da653251ab7457cd54ebba0b279.tar.gz
test(desktop): P17 取证钩子(LV_AUTOPLAY_START_HOUR 纯函数起时)+ 证据与 docs 记录
Diffstat (limited to 'src/LivingVillage.Desktop/Game.fs')
-rw-r--r--src/LivingVillage.Desktop/Game.fs15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/LivingVillage.Desktop/Game.fs b/src/LivingVillage.Desktop/Game.fs
index 3f3a1d8..4760d4e 100644
--- a/src/LivingVillage.Desktop/Game.fs
+++ b/src/LivingVillage.Desktop/Game.fs
@@ -126,8 +126,21 @@ type LivingVillageGame() as this =
let mutable cjkAtlas = Unchecked.defaultof<Texture2D>
let mutable pixel = Unchecked.defaultof<Texture2D>
let renderPlan = VillageArt.sampleRenderPlan ()
+ // Evidence hook: pin the starting wall-clock hour (e.g. 20.75 for 黄昏), desktop-only.
+ let startHourOverride =
+ match Environment.GetEnvironmentVariable("LV_AUTOPLAY_START_HOUR") with
+ | null | "" -> None
+ | value ->
+ match Double.TryParse(value, Globalization.NumberStyles.Float, Globalization.CultureInfo.InvariantCulture) with
+ | true, hour -> Some hour
+ | _ -> None
let createInitialWorld () =
- WorldBootstrap.initialWorldForDaylight daylightAutoplay 42UL Sim.npcCount
+ let baseWorld = WorldBootstrap.initialWorldForDaylight daylightAutoplay 42UL Sim.npcCount
+ match startHourOverride with
+ | Some hour ->
+ let tick = M6Presentation.startTickForHour hour
+ { baseWorld with Tick = tick; Time = float tick * Sim.dtSeconds }
+ | None -> baseWorld
let mutable world = createInitialWorld ()
let mutable camera = Vector2.Zero
let mutable avatarFacing = VillageArt.SouthFacing