File size: 1,705 Bytes
3ce1a40 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | namespace Repoverse.Core;
/// <summary>All tunable world dimensions in one place (§64). Units are voxels unless stated.</summary>
public static class WorldConstants
{
public const int ChunkSize = 32;
public const int ChunkVolume = ChunkSize * ChunkSize * ChunkSize;
/// <summary>One building plot plus its surrounding road.</summary>
public const int PlotSize = 48;
public const int RoadWidth = 6;
public const int MaxFootprint = PlotSize - 2 * RoadWidth; // 36
public const int MinFootprint = 10;
/// <summary>Plots per district side; a district holds DistrictSide² buildings before overflow.</summary>
public const int DistrictSide = 12;
public const int DistrictSpan = DistrictSide * PlotSize;
public const int DistrictGridColumns = 4;
public const int GroundLevel = 8;
public const int FloorHeight = 6; // 1 slab + 5 air
public const int MaxFloors = 12;
public const int CorridorWidth = 3;
public const int DoorHeight = 3;
/// <summary>Directories with fewer files merge into a shared room (§78 semantic compression).</summary>
public const int MinFilesForOwnRoom = 2;
public const int MaxRoomsPerBuilding = 48;
public const int MaxArtifactsPerRoom = 24;
public const int ActivityWindowDays = 90;
public const int StreamRadiusChunks = 6;
public const int StreamHysteresisChunks = 2;
public const double SimulationTicksPerSecond = 10;
public static readonly string[] IgnoredDirectories =
[
"node_modules", "target", "bin", "obj", "build", "dist", "out", ".git", ".idea", ".vs",
"__pycache__", ".venv", "venv", "vendor", ".gradle", ".next", ".cache", "coverage",
];
}
|