namespace Repoverse.Core; /// All tunable world dimensions in one place (§64). Units are voxels unless stated. public static class WorldConstants { public const int ChunkSize = 32; public const int ChunkVolume = ChunkSize * ChunkSize * ChunkSize; /// One building plot plus its surrounding road. public const int PlotSize = 48; public const int RoadWidth = 6; public const int MaxFootprint = PlotSize - 2 * RoadWidth; // 36 public const int MinFootprint = 10; /// Plots per district side; a district holds DistrictSide² buildings before overflow. 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; /// Directories with fewer files merge into a shared room (§78 semantic compression). 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", ]; }