summaryrefslogtreecommitdiff
path: root/src/LivingVillage.Kernel/Sim.fs
diff options
context:
space:
mode:
Diffstat (limited to 'src/LivingVillage.Kernel/Sim.fs')
-rw-r--r--src/LivingVillage.Kernel/Sim.fs13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/LivingVillage.Kernel/Sim.fs b/src/LivingVillage.Kernel/Sim.fs
index 0845abd..9da7c46 100644
--- a/src/LivingVillage.Kernel/Sim.fs
+++ b/src/LivingVillage.Kernel/Sim.fs
@@ -235,8 +235,17 @@ module Sim =
let dtSeconds = 1.0 / float ticksPerSecond
let dtSecondsF = 1.0f / float32 ticksPerSecond
- let mapWidthTiles = 64
- let mapHeightTiles = 48
+ /// World dimensions are parameterized so a large procedural map (e.g. 512x384)
+ /// can reuse every movement/wander/clamp rule. Defaults stay the legacy 64x48 to
+ /// keep all existing deterministic tests and baselines untouched.
+ let mutable mapWidthTiles = 64
+ let mutable mapHeightTiles = 48
+
+ /// Configure the world size. Note: the caller must not step worlds during a
+ /// reconfiguration; bounds are read per step from these values.
+ let configureBounds (widthTiles: int) (heightTiles: int) : unit =
+ mapWidthTiles <- widthTiles
+ mapHeightTiles <- heightTiles
let tilePixels = 32
let avatarSpeed = 160.0f