首页› 核心系统› SYS-14
SYS-14

蓝图与编辑工具

框选 / 复制 / 剪切 / 粘贴、跨楼镜像、蓝图库与蓝图书、粘贴选项浮窗、导出导入、以及与 Steam 创意工坊的衔接

册型T1 系统册系列核心系统版本v3.30档期P1上游依赖SYS-01 / SYS-02 / SYS-15被谁依赖SYS-11(交互入口)、BIZ-02(创意工坊分发)、悬空结构的跨楼镜像本册变更v2.2 新建

1. 本册用途#

这一册管什么:框选 / 复制 / 剪切 / 粘贴、跨楼镜像、蓝图库与蓝图书、粘贴选项浮窗、导出导入、以及与 Steam 创意工坊的衔接。

这一册不管什么:蓝图里的内容本身(房间见 SYS-02、核心筒与承重柱见 SYS-01);创意工坊的接入与治理(见 BIZ-02);界面框架与输入规范(见 SYS-11);悬空结构的合拢规则(见 SYS-02)。

2. 档期与优先级#

项目内容
档期P1
被谁依赖SYS-11(交互入口)、BIZ-02(创意工坊分发)、悬空结构的跨楼镜像
上游依据SYS-01 / SYS-02 / SYS-15

3. 机制规则#

本系统的核心规则。本节是蓝图与编辑工具的唯一真值源。

3.1 为什么需要它#

网格化(见 SYS-15)之后,玩家在 40 格宽的楼层上逐格摆放房间,点击量会迅速失控。 更关键的是悬空结构(见 SYS-02)要求「一侧建一半、另一侧镜像复制」—— 没有镜像与蓝图能力,这个玩法在操作上不成立。因此本系统不是便利功能,而是某些玩法的前置条件。

3.2 编辑操作#

操作作用域说明
框选任意矩形区域在剖面视图内框选;可跨层,一条选区可同时覆盖多个楼层高度。选择以格为单位
复制选中区域复制区域内全部内容:房间、核心筒、承重柱、悬挑构件。生成一个蓝图对象
剪切选中区域复制 + 清空原区域(清空同样受结构校验约束——若清空后楼层失去支撑,拒绝执行)
粘贴目标位置按粘贴选项(§3.5)挑选内容后落位;落位做结构可行性校验
镜像粘贴目标位置 + 镜像轴水平镜像后落位。服务于悬空结构「另一侧」与对称布局

3.3 存储与粘贴是两件事(v2.2 核心口径)#

复制时全量存储,粘贴时按需投影。

复制生成蓝图时,区域内的一切都被记录——房间、核心筒、承重柱、悬挑构件、格坐标。 蓝图是一份完整快照。而粘贴是一份投影:玩家通过粘贴选项决定这次只贴哪几类内容。 这样同一张蓝图可以用于不同意图——贴全套、只贴房间、只贴柱网,都不需要重新框选。

3.4 粘贴的宽容模式(v2.2 明确)#

粘贴校验不因「与目标不匹配」而拒绝。具体要求:

  • 允许覆盖:目标位置若已有内容,按粘贴选项直接覆盖,不弹「位置被占用」的拒绝。
  • 允许不对称:悬空结构两侧长度可以不一致——多出一格是合法状态,不是错误。
  • 覆盖必须可见:落位前显示半透明预览,将被覆盖的部分高亮标红,并给出覆盖计数。 “允许覆盖”不应变成“手滑删掉一层”。
  • 唯一的硬拦截:结构不可行(超限、失去支撑、越出地块)仍然拒绝,并给出诊断。这与覆盖无关。

3.5 粘贴选项浮窗#

粘贴时,界面右上角出现一个浮窗,内含可勾选项:

勾选项含义
房间粘贴房间及其布局
核心筒粘贴核心筒(含分段与多筒)
承重柱粘贴承重柱网及其级别
悬挑构件粘贴悬空结构的半侧体量
地面用途粘贴公园 / 广场等地面用途标注(若选区包含地面层)

默认全选。浮窗在粘贴前一直可见,勾选变化即时反映到预览上。 浮窗位置固定在右上角,不遮挡选区——这是为长距离拖拽粘贴所做的让步(选区常在视图左下,浮窗在右上,二者不重叠)。

3.6 镜像#

v2.2 只做水平镜像。理由:它是悬空结构「两侧各半」的刚需,而垂直镜像与旋转在本作的空间语义里几乎没有使用场景(楼不会倒过来盖)。

镜像的基准点按以下优先级取:

  1. 若选区落在某塔内且该塔有核心筒 → 以核心筒中轴为镜像轴
  2. 否则若该塔有地基 → 以地基中轴为镜像轴
  3. 否则以选区自身中轴为镜像轴

以核心筒为中轴的意义在于:两侧建完再合拢时,镜像过去的体量能与对侧自动对齐,不需要玩家手工微调格数。

3.7 蓝图库与蓝图书#

蓝图库是本地的蓝图集合,形态参考 Factorio(异星工厂):

  • 蓝图:一次框选存储的产物,含名称、图标、格坐标快照、内容清单
  • 蓝图书:蓝图的分组容器,可嵌套;一本书可以是一整套生产区的蓝图
  • 取用:从库中选中蓝图 → 光标带蓝图 → 在目标位置落位
  • 管理:重命名、换图标、移动、复制、删除
  • 导出 / 导入:蓝图可导出为字符串(含完整快照),在玩家之间传递
不做数字键快捷取用(v2.2 明确) 异星工厂用 1–9 快速切换蓝图,但那是为高频产线操作设计的。本作的蓝图使用频率低得多, 而键位记忆成本高——玩家会在「刚才那个蓝图是 3 还是 4」上浪费注意力。一律从蓝图库面板取用。

3.8 与创意工坊的衔接#

蓝图库与 BIZ-02 的创意工坊生态天然衔接:蓝图可以发布为工坊物品,也可以订阅他人蓝图。 治理边界沿用 BIZ-02:蓝图不得修改全局唯一系统(时间、财务口径、存档格式)。

与 MOD 的关系 蓝图是数据,MOD 是内容与规则。蓝图库里可以存放引用了某 MOD 房间的蓝图, 但该蓝图在缺少对应 MOD 的环境下应当优雅降级(缺失的房间留空并提示),而不是崩溃或静默丢弃。

4. 参数与数值#

蓝图系统本身不引入玩法数值(它不产生收入与成本)。下表为容量与限制口径。

项建议值说明
单张蓝图最大选区整塔全高 × 全宽不设人为上限;超过内存阈值时提示分段
蓝图库容量本地 500 张 / 蓝图书 50 本软上限,超出提示归档
导出字符串长度随内容压缩后存储,与创意工坊物品上限对齐
粘贴覆盖的撤销栈≥ 20 步覆盖是破坏性操作,须支持撤销
镜像轴容差0 格镜像必须精确;不做“近似对齐”

5. 数据字段#

蓝图对象与蓝图书的 Schema。跨系统共享的基础容器见 TECH-03。

Blueprint {                       // 一张蓝图
  id: String,
  name: String,
  icon: String,                   // 图标资源路径
  origin_ref: String,             // 镜像基准参照:core_tube:<id> / foundation:<id> / self
  size: { w: int, h: int },        // 选区尺寸(格)
  cells: Array[CellSnapshot],     // 格坐标快照(相对 origin_ref)
  manifest: {                     // 内容清单——供粘贴选项过滤
    rooms: int,
    core_tubes: int,
    columns: int,
    overhangs: int,
    ground_uses: int
  },
  tags: Array[String],
  created_at: String,
  version: String                 // 全库版本号,用于导入时的兼容判断
}

BlueprintBook {                   // 蓝图书
  id: String,
  name: String,
  entries: Array[String],         // Blueprint.id 或子书.id
  parent: String                  // 支持嵌套;根为 null
}

CellSnapshot {                    // 单格快照
  dx: int, dy: int,               // 相对基准的格偏移
  kind: String,                   // room / core_tube / column / overhang / ground_use
  payload: Dictionary             // 按 kind 解释;如 room 存 template_id 与跨层高度
}

6. 边界与不做的#

不作蓝图内的脚本化(纯数据);不做云同步(本地 + 创意工坊两处即可);不做数字键快捷取用;不做跨存档自动迁移。

完整的「不管什么」见第 1 节;相邻系统的职责划分见第 7 节。本节是防止分册无边界膨胀的关键——任何新需求如果落在这里,一律拒绝。

7. 相邻系统接口#

本系统的依赖关系以 IDX-03 为准。

方向对象
上游(本册依赖)SYS-15 格坐标与全域坐标系;SYS-01 承重柱与核心筒;SYS-02 房间与建造校验
下游(依赖本册)SYS-11 交互入口;BIZ-02 创意工坊分发;SYS-02 悬空结构的跨楼镜像
跨册引用一律只写编号(铁律六)。本册若需引用其他系统,写 SYS-xx,不复述对方内容。

8. 待办与风险#

① 蓝图与格坐标的序列化格式需与 TECH-03 对齐(尚未定稿);② 粘贴覆盖的冲突高亮规范待补;③ 悬空结构「两侧合拢蓝图」的镜像基准点需在悬空结构定稿后回填。
↑↓ 选择 ↵ 打开 esc 关闭 本地索引 · 无需联网