1. 本册用途#
本册是所有空间系统的度量衡。水平和竖向均使用 1m 的整数格坐标。它不要求所有建筑按 4m 对齐;4m 只是默认楼格高度。
2. 基本单位#
唯一空间单位
1 格 = 1m × 1m × 1m。x、y、z 都是整数坐标;表现层可以缩放 PNG 或纯色块,但不得改变运行时格坐标。
- x、z:水平位置,1 格等于 1m。
- y:竖向高度,1 格等于 1m。
- “第几层”只是 UI 对 4m 默认楼格的显示名称,不是独立坐标系。
- 任何楼格都可以从地面 0m、1m、2m、3m 或其他整数高度开始。
3. 默认楼格与自由楼格#
| 对象 | 尺寸 | 规则 |
|---|---|---|
| 标准楼格 | 1m 宽 × 4m 高 | 普通房间、商业、办公和住宅默认使用 |
| 自由楼格 | 1m × 1m × 1m | 可拖选任意数量,补齐高度差和异形空间 |
| 超大型房间 | 8m、12m、16m…… | 以 4m 为基础倍增,不限制为固定楼层 |
楼格可以水平连续,也可以在高度上错层。错层空间必须通过楼梯、分段楼梯或电梯连接。没有连接的空间可以作为草稿保存,但不能批准施工。
4. 楼板和高度#
每个标准楼格包含两块板:底部地板和顶部天花板,各占 0.1 格厚度。4m 楼格的净使用高度为 3.8 格;楼板厚度写入数据,不创建独立 Godot Node。
| 项目 | 数值 | 说明 |
|---|---|---|
| 格尺寸 | 1m | 全库固定 |
| 默认楼格高度 | 4m | 默认房间体量 |
| 地板厚度 | 0.1 格 | 标准楼格底板 |
| 天花板厚度 | 0.1 格 | 标准楼格顶板 |
| 自由楼格 | 1m³ | 任意整数高度拖选 |
超大型房间以 4m 的倍数定义空间高度,但内部仍由连续的格区间保存。自由楼格可用于 1m、2m、3m 的补高,不强制补成 4m。
5. 核心筒层坐标#
核心筒平面尺寸由玩家选择。核心筒层是独立界面,编辑范围为核心筒平面尺寸的 2 倍:核心筒宽度 10m 时,核心筒层可编辑宽度为 20m。核心筒层沿用同一套 y 高度坐标,但不放置柱、墙、梁、板。
核心筒层仅允许白名单设施:楼梯、电梯、设备竖井、资源传输节点和维护空间。核心筒外可以建造相同设施,核心筒只是更方便、也更昂贵的集中位置。
6. 数据字段#
GridPos { x:int, y:int, z:int }
BuildCell { x:int, y:int, z:int, width:1, height:1, layer:String }
StandardCell { base_y:int, height:4, floor_slab:0.1, ceiling_slab:0.1 }
RoomExtent { from_y:int, to_y:int, height_class:String,
cells:Array[GridPos], modifies_core_tube:false }
CoreLayer { core_id:String, width:int, depth:int,
edit_width:int, edit_depth:int, edit_scale:2, allowed_defs:Array[String] }
HeightLink { from_y:int, to_y:int, stair_def:String, direction:String }网格数据按 Chunk 和压缩区间保存。UI 只查询可见范围;结构检查和施工由命令批处理完成。
7. 边界与性能#
不做半格或浮点放置;不做自由旋转网格;不做多个坐标系统;不为每个格创建 Node;不在每帧扫描所有楼格。斜柱和斜梁以离散方向模板保存,仍使用整数端点。