ArchitectureCraft

[!INFO] Git Commit: 946ed0e | Updated: 2026-10-02

ArchitectureCraft 是 1.7.10 Forge 版的建筑构件模组:用一套构件(shape)系统把任意建材 (羊毛、木、石、玻璃……)加工成屋顶、窗户、拱门、栏杆、柱式、覆面等建筑部件, 让建筑外观不再受方块网格限制。本 wiki 收录的是 GTNH 分支版本。

⚠️ modid ≠ 资源域

概念 值 来源
modid ArchitectureCraft(混合大小写) ArchitectureCraft.java:41 MOD_ID
资源域 / 矿典前缀 architecturecraft(全小写) ASSET_KEY 与 REGISTRY_PREFIX 均为 MOD_ID.toLowerCase()

gradle.properties 里的 modId = ArchitectureCraft 同样是驼峰。写 /give、矿典、 写数据驱动路径时都必须用小写的 architecturecraft。

注册总览(132 个 Java 文件,实际注册内容很少)

本 mod 132 个 Java 文件中绝大部分是渲染、模型、GUI 与兼容层, 真正的注册内容只有 11 条,全部集中在单一文件 ArchitectureContent.java:

注册表 条目数
方块 3(sawbench、shape、shapeSE)
物品 6(sawblade、largePulley、chisel、hammer、cladding、glowbrush)
TileEntity 2(TileSawbench 注册名 gcewing.sawbench、TileShape 注册名 gcewing.shape)
TileEntity 注册名域 ⚠️ 用的是 gcewing.* 前缀,与 modid / 资源域都不同

没有多方块结构、没有实体、没有附魔、没有配置型注册。

构件目录

构件模型放在 assets/architecturecraft/models/shape/,共 111 个 .objson 文件:

类别 数量
window 23
balustrade 21
roof 9
railing 8
arch 8
cylinder 7
cornice 7
sphere 6
doric / ionic / corinthian(柱式) 4 + 1 + 1
stairs 2
bevelled 2
其余(slab、square、cladding、architrave、pillar、mullion 等) 11

锯台 GUI 暴露 8 页共 115 个构件(TileSawbench.pages 静态数组实测), 115 个构件复用 111 个模型(_lh / _rh 等成对构件走镜像)。

配方(6 个,且有前置条件)

ArchitectureContent.registerRecipes() 的全部配方都包在 if (!Loader.isModLoaded("dreamcraft")) 里(ArchitectureContent.java:91)—— 装了 DreamCraft 就一个配方都没有。其中 Cladding 与 两个构件方块任何情况下都没有配方。

依赖范围说明

  • 本 mod 无硬依赖。dependencies.gradle 中只有两条 compileOnly:
    • Angelica(compileOnlyApi)— 已登记但尚未成文,前向引用 angelica
    • Postea(compileOnly,{transitive = false})— 本 wiki 已收录,通过 PosteaCompat 做物品替换兼容
  • ArchitectureCraftClient.java 中的内容是可选客户端增强,非运行期硬依赖

方块列表

  • 锯台 - 核心机器,GUI 8 页 115 构件,硬度 2.0,不支持自动化
  • 构件方块 - 全部预制构件的载体,Shape 面向 6 个面
  • 构件方块·自发光 - 与 shape 同一个类,亮度 15

物品列表

  • 锯片 - 锯台耗材,配方需无 DreamCraft
  • 大皮带轮 - 锯台配件,注册名混合大小写
  • 凿 - 修改构件轮廓
  • 锤 - 大范围形状调整
  • 覆面 - 无配方,且唯一不继承 ItemArchitecture 的物品
  • 荧光刷 - 切换自发光变体,注册名 glowbrush 无大写 B

源码缺陷

  1. assets/architecturecraft/models/shape/ 下有 2 个垃圾文件: balustrade_fancy.smeg copy 与 balustrade_fancy_corner.smeg copy。 带空格的 .smeg copy 后缀是编辑器另存残留,应删除。
  2. ArchitectureContent.java:91 把所有配方绑在 !Loader.isModLoaded("dreamcraft") 上, 装 DreamCraft 时 6 个配方全部消失,物品只能靠 /give 获取——这是硬编码分支而非数据驱动。
  3. TileEntity 注册名用 gcewing.sawbench / gcewing.shape(作者包名 gcewing), 与 modid、资源域 architecturecraft 三者都不一致。改包名或改 modid 都不会影响它们, 但存档 NBT 与代码内引用中会留下 gcewing 字样。
  4. 仓库根目录有 shapemenu_items_0.pdn / shapemenu_items_1.pdn 两个设计源文件被提交进 git, 与 assets/architecturecraft/textures/gui/shapemenu_items_*.png 是同一张贴图的设计稿。