
模拟城市扩展包
构建 New-Simukraft-1.21.1 的扩展包管理器
模拟城市扩展包
针对 New-Simukraft-1.21.1 的建筑扩展包管理器
将原版、Litematica 和 WorldEdit 的建筑结构带入游戏,转换并安装为可建造的 SimuKraft 建筑,在类 Litematica 风格的管理器中编辑它们,并通过一键式 zip 包进行分享。
目录
概述
模拟城市扩展包是一个用于 Minecraft 1.21.1 的 NeoForge 模组,为 New-Simukraft-1.21.1(一款城市建造模组)添加了完整的建筑扩展包流水线。它允许您从三种常见格式导入结构,将其转换为 SimuKraft 的可建造格式,通过类 Litematica 风格的管理器进行组织和编辑,并将其打包为可移植的 zip 包,实现一键安装和分享。
与 SimuKraft 的集成基于 纯文件系统约定 —— 该模组将 .sk 和 .nbt 文件写入 <游戏目录>/simukraftbuilding/<分类>/ 目录下 —— 因此对 SimuKraft 没有编译时依赖。管理器基于 Minecraft 自身的 GUI 工具包构建,无需额外库,命令接口同样可在专用服务器上运行。
功能
- 三种结构格式 — 原版
.nbt、Litematica.litematic(多区域自动合并)以及 Sponge/WorldEdit.schem(v1/v2/v3),安装时全部转换为 SimuKraft 的原版可建造格式。 - 稳健的转换 — 老旧结构通过游戏 DataFixer 升级,缺失的模组方块会对照注册表进行检测,方块实体内容(箱子物品栏、告示牌等)得以保留(实体不保留)。
- 类 Litematica 风格的管理器(使用
\键打开) — 文件树、固定宽度信息面板、材料列表以及多层预览:嵌入式缩略图、真实方块 3D 场景、等距体素视图和俯视地图。 - 完整的结构编辑器 — 放置/破坏/选取/替换、笔刷绘画、框选(填充/边框/挖空/扩展)、复制/剪切/粘贴、旋转和镜像、对称轴、撤销/重做、切片平面以及预设相机视角;可导出为
.litematic或直接保存并安装。 - 从世界中捕获 — 在游戏内标记两个角落,将选定区域捕获为蓝图,并可选择包含方块实体内容。
- Zip 包生态系统 — 基于清单跟踪的安装/卸载、一键导出已安装建筑为可分享包、可选的包图标和
index.json文件清单,以及 SimuKraft 原生工作/交易定义的直通传递(v2 格式)。 - 无硬性依赖 — 管理器运行于 Minecraft 自身的 GUI 工具包,SimuKraft 仅通过文件系统集成,因此两者均非编译时依赖。
- 服务器友好 —
/buildpack命令(操作员等级 2,支持 Tab 补全)可在专用服务器上安装松散文件和包、捕获区域,并复用与 GUI 相同的转换流水线。 - 本地化 — 支持英语、简体中文和繁体中文;数字、日期和文件大小根据当前游戏语言格式化。
要求与安装
| 要求 | 版本 |
|---|---|
| Minecraft | 1.21.1 |
| NeoForge | 21.1.233 或更高版本 |
将 jar 文件放入您的 mods/ 文件夹中 —— 没有其他模组依赖。游戏内管理器在客户端可直接使用;在专用服务器上,jar 文件以无头模式加载,并提供 /buildpack 命令。
打开管理器
在游戏中按下 \(反斜杠)键。所有按键绑定可在 选项 -> 控制 中该模组的分类下重新绑定。
| 操作 | 默认按键 |
|---|---|
| 打开建筑包管理器 | \ |
| 设置世界选择角点 A | [ |
| 设置世界选择角点 B | ] |
| 将选定区域捕获为蓝图 | ' |
| 切换“包含方块实体内容” | 未绑定 |
| 清除世界选择 | 未绑定 |
管理器
左侧面板有三个标签页:
- 导入文件 — 导入目录中的松散
.nbt/.litematic/.schem文件。 - 包 — 导入目录中的 zip 建筑包,以可展开的树状结构显示(包 -> 分类 -> 建筑)。任何建筑均可预览,并可 直接从 zip 中 读取,无需事先解压。
- 已安装 — 已存在于 SimuKraft 建筑目录中的建筑。
右侧信息面板显示元数据行、预览图、材料列表(按方块类型计数,并标记缺失方块)以及一个 .sk 元数据表单(在 导入 标签页中可编辑,在其他标签页中只读)。支持拖放导入、搜索、排序、批量安装和双击删除。当浏览包含图标的包时,图标会显示在预览区域。
结构编辑器
在安装前,可在编辑器中打开结构进行精修:
- 编辑 — 放置、破坏、选取和替换方块;笔刷具有可调大小和笔触;可一次性移除或替换整个方块类型。
- 选择 — 框选一个区域(点击两个格子或拖动框面),然后进行填充/边框/挖空/扩展/清除操作,支持复制、剪切和粘贴。
- 变换 — 沿任意轴旋转 90 度、镜像,并支持对称轴进行镜像编辑。
- 历史 — 撤销和重做。
- 视图 — 循环切换切片平面、适配并聚焦选定区域、预设相机角度、网格和小工具开关,以及透视切换。
- 输出 — 另存为新、保存并安装,或导出为
.litematic。
在编辑器内按下 H 键可查看完整的快捷键列表。
从世界中捕获建筑
在世界中建造一些东西,然后无需离开游戏即可将其转换为蓝图:
- 看向一个方块,按下 [ 键设置角点 A,然后按下 ] 键设置角点 B。选择框会显示在世界中。
- 按下 ' 键捕获选定区域并将其导出到导入目录。
- 可选择绑定“包含方块实体内容”键以捕获箱子物品栏等数据,以及“清除选择”键以重置角点。
在服务器上,同样的操作可通过 /buildpack capture 完成(参见 命令)。
建筑包
建筑被分为五个固定分类:residential(住宅)、commercial(商业)、industry(工业)、public(公共)和 other(其他)。
安装/卸载 — 安装一个包会将每个建筑转换到相应的分类目录,并在
simcity_expansion/installed_packs.json中记录清单,因此卸载时会精确移除该包添加的文件。导出(已安装标签页 -> 导出) — 将列出的建筑(遵循当前搜索过滤器)打包为 zip。可选选项:
- 包含
.sk元数据, - 包含 SimuKraft 工作/交易 JSON,
- 包含一个 图标 — 勾选复选框并将路径留空,则自动从第一个建筑的预览图渲染一个;或提供自定义 PNG 路径。
一个
index.json文件清单(包含每个打包文件的类型、分类、大小和 SHA-256)始终会写入 zip 根目录。- 包含
清单 —
pack.json(v2 格式)包含id、name、version、author、description、可选的icon以及一个generated时间戳。
完整的包规范(目录布局、pack.json、.sk / .meta.json 元数据、原生工作/交易 JSON、icon.png 和 index.json)记录在 docs/pack-format.zh.md 中。
结构格式
| 扩展名 | 来源 | 安装时的转换 |
|---|---|---|
.nbt |
原版结构方块模板 | 直接安装;旧版本自动升级 |
.litematic |
Litematica 投影 | 多区域合并至一个边界框;读取嵌入式名称/作者/创建时间/缩略图 |
.schem |
Sponge / WorldEdit 原理图 | 支持 v1、v2 和 v3 |
所有格式在安装时都会转换为原版 .nbt(SimuKraft 的建造系统仅读取原版格式)。转换过程中,结构会通过 DataFixer 升级到当前游戏版本,方块实体位置会重新映射并保留,调色板会对照注册表检查缺失方块,合并后的体积上限为 16,000,000 个方块。
目录布局
<游戏目录>/
├── simcity_expansion/
│ ├── import/ 导入目录(将松散文件和 zip 包放置于此)
│ ├── export/ 导出的建筑包
│ └── installed_packs.json 已安装包注册表
└── simukraftbuilding/<分类>/ SimuKraft 建筑目录(安装目标)
命令
所有 /buildpack 子命令需要操作员等级 2(游戏管理员),并提供 Tab 补全。
| 命令 | 描述 |
|---|---|
/buildpack list |
列出导入目录中的文件 |
/buildpack packs |
列出已安装的包 |
/buildpack install <file> [category] [name] |
安装一个松散的结构文件 |
/buildpack installpack <zip> |
安装一个完整的 zip 包 |
/buildpack uninstallpack <id> |
按 ID 卸载一个包 |
/buildpack activate <zip> |
虚拟地将一个包提供给 SimuKraft(不安装)— 需要 SimuKraft |
/buildpack deactivate <id> |
停止提供一个已激活的包 |
/buildpack active |
列出当前激活的包 |
/buildpack capture <from> <to> [name] [format] |
将一个区域捕获为蓝图 |
文档
| 文档 | 受众 |
|---|---|
| 使用指南 | 玩家:导入、安装、管理、导出 |
| 包格式规范 v2 | 包作者:布局、pack.json、元数据、转换 |
从源码构建
该项目使用 Gradle 包装器和 NeoForge ModDevGradle 工具链(JDK 21)。
./gradlew build
构建好的 jar 文件会写入 build/libs/ 目录。
许可协议
保留所有权利。版权所有 © 2026 xinian。 本源码以参考为目的发布;未经许可,不得用于再分发或衍生作品。 在整合包中使用时,必须链接回原始链接。
致谢
- New-Simukraft-1.21.1 — 本模组扩展的城市建造模组。
- devins-badges — 本自述文件中的徽章图片。
关于旧版本
- 1.20.1 Forge 版本已停止开发
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。