summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSomhairle H. Marisol <[email protected]>2026-09-22 03:16:13 +0800
committerSomhairle H. Marisol <[email protected]>2026-09-22 03:16:13 +0800
commit1d51da7caa7df7d9b19a9317d16aa1f6f7853e9d (patch)
treefb8981a9e50a12b6c496b11357fa9778a3cab8db /src
parentf6d4c2fbfe8327381a124c25500225e9ed6558da (diff)
downloadliving-village-1d51da7caa7df7d9b19a9317d16aa1f6f7853e9d.tar.gz
fix(mapgen): sample 录像流程保持 64x48,仅显式巡游用生成器世界
LV_AUTOPLAY_SAMPLE(非巡游)仍走旧 64x48 以确保既有录像可复现; LV_RIVERSCAPE_TOUR=1 时才启用 256x192 生成器世界。新增 world-mode 启动日志。
Diffstat (limited to 'src')
-rw-r--r--src/LivingVillage.Desktop/Game.fs11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/LivingVillage.Desktop/Game.fs b/src/LivingVillage.Desktop/Game.fs
index 8eafd26..e71b280 100644
--- a/src/LivingVillage.Desktop/Game.fs
+++ b/src/LivingVillage.Desktop/Game.fs
@@ -133,14 +133,16 @@ type LivingVillageGame() as this =
| v -> match Int32.TryParse v with (true, value) -> max 1 value | _ -> 1
let mapTourMode = Environment.GetEnvironmentVariable("LV_MAP_TOUR") = "1"
// P20 第三步:默认可玩世界走 256x192 生成器(核心可达区站位);LV_LEGACY_MAP=1 回退 64x48。
- let riverscapeActive = not legacyMapMode && not mapTourMode && mapScale <= 1
+ // 证据用 sample 流程(LV_AUTOPLAY_SAMPLE)保持旧 64x48 以确保既有录像可复现,除非显式请求巡游。
+ let riverscapeTourRequested = Environment.GetEnvironmentVariable("LV_RIVERSCAPE_TOUR") = "1"
+ let riverscapeActive = not legacyMapMode && not mapTourMode && mapScale <= 1 && (not sampleMode || riverscapeTourRequested)
let riverscapeMap : MapGen.Result option =
if riverscapeActive then
Sim.configureBounds 256 192
Some (MapGen.generateWithSize 256 192 42UL)
else
None
- let riverscapeTourMode = Environment.GetEnvironmentVariable("LV_RIVERSCAPE_TOUR") = "1" && riverscapeActive
+ let riverscapeTourMode = riverscapeTourRequested && riverscapeActive
/// 巡游路点:第一座桥的整列(含两端外沿)+ 民居门 + 核心中心,用于桥面行走取证。
let riverscapeTourWaypoints () : (int * int) list =
match riverscapeMap with
@@ -280,6 +282,11 @@ type LivingVillageGame() as this =
this.IsFixedTimeStep <- true
this.TargetElapsedTime <- TimeSpan.FromTicks(TimeSpan.TicksPerSecond / 60L)
this.Window.Title <- ChineseText.copy.SceneTitle
+ printfn
+ "world-mode=%s bounds=%dx%d"
+ (if riverscapeActive then "riverscape" elif mapScale > 1 then "map-scale" else "legacy-64x48")
+ Sim.mapWidthTiles
+ Sim.mapHeightTiles
printfn $"mode={modeName} seed=42"
printfn "controls=WASD move E interact 1-6 choose Q observe Tab needs C chronicle L relations P pause F1/F2/F3 speed F6 save F7 load Esc close/exit"
member private this.CenterCamera() =