diff --git a/server/src/simulation/generator.rs b/server/src/simulation/generator.rs index b067b8298..b4fa2cb89 100644 --- a/server/src/simulation/generator.rs +++ b/server/src/simulation/generator.rs @@ -301,8 +301,9 @@ pub struct BlockPlacement { pub offset: (i16, i16), /// Rotation in 15° increments (0–3, max 45°). pub rotation_steps: u8, - /// Street width multiplier (0.75–2.0; default 1.0 = 4 visual tiles). - pub street_width_factor: f32, + /// Street width in basis points (10000 = 1.0×, range 7500–20000 for 0.75–2.0×). + /// Default 10000 = 4 visual tiles. Uses integer to avoid f32 non-determinism (D-010). + pub street_width_bps: u16, } /// Single block within a district's 4×4 block grid. @@ -319,8 +320,9 @@ pub struct BlockSkeleton { pub era: Era, pub era_modifications: Vec, pub era_cause: Option, - /// Build density scalar (0.0 = open/empty, 1.0 = fully built-up). - pub density: f32, + /// Build density percentage (0 = open/empty, 100 = fully built-up). + /// Integer to avoid f32 non-determinism (D-010). + pub density_pct: u8, pub landmark: Option, }