匠师蓝图

匠师蓝图

数据驱动的自定义工具注册,用于匠魂2使用JSON,无需Java。

Tinkers' Schema

为 Tinkers' Construct 2 提供数据驱动的工具注册。

Tinkers' Schema 是 Tinkers' Construct 2 的一个附属模组,让你仅使用 JSON 就能添加自定义的近战武器、采掘工具和远程武器。无需 Java 代码,无需编译,无需重构资源包——放入一个配置文件,提供你的模型和纹理,工具就会成为一个功能完整的 Tinkers' 物品。

对于自定义模型和纹理,推荐使用 Resource Loader。

此处提供了一个开箱即用的示例包:Tinkers' Schema - Example Tools。

Tinkers' Schema 本身不会向游戏中添加任何内容。它只提供框架——你需要示例包或自己的 JSON 和资源文件,工具才会出现。

功能特性

  • JSON 驱动的注册 —— 每个工具由 config/tinkersschema/tools/ 中的单个文件定义。
  • 一流的 Tinkers' 物品 —— 工具可在工具站和工具锻造台中制作,可修复、可修改,并与现有的 Tinkers' 材料兼容。
  • 可配置部件 —— 使用 head、handle、extra、bowlimb、bowstring 或任何已注册的属性 ID 来组合任意 Tinkers' 工具部件。支持多个相同类型的部件。
  • 可配置属性 —— 伤害、攻击速度、击退、耐久度、挖掘速度和伤害上限均可调整,并具有合理的默认值。
  • 固有特性 —— 将任何已注册的特性(例如 splintering、beheading)附加到工具上。
  • AOE 范围 —— 采掘工具可以定义自己的范围效果尺寸。
  • 自定义 GUI 布局 —— 九宫格槽位预设(topleft、center、bottomright)或精确像素坐标("12,62")。
  • 站点路由 —— 在工具站中制作,或限制为仅工具锻造台。
  • 零副作用 —— 没有配置文件意味着对你的游戏没有任何更改。

当前范围

工具类型 基类 用途
sword SwordCore 近战武器
harvest AoeToolCore 具有 AOE 挖掘的采掘工具
bow BowCore 使用箭的远程武器

需求

  • Minecraft 1.12.2
  • Forge
  • Tinkers' Construct 2
  • Mantle
  • Resource Loader (推荐用于加载自定义模型和纹理)

快速开始

  1. 安装 Tinkers' Schema 及其依赖项。

  2. 在 config/tinkersschema/tools/ 中创建工具定义:

{
  "id": "tinkersschema:war_club",
  "tooltype": "sword",
  "station": "table",
  "categories": ["WEAPON"],
  "traits": ["splintering"],
  "repairParts": [1, 2],
  "repairModifiers": { "1": 1.5, "2": 1.5 },
  "parts": [
    { "type": "handle", "item": "tconstruct:tool_rod" },
    { "type": "head",   "item": "tconstruct:bow_limb" },
    { "type": "head",   "item": "tconstruct:bow_limb" }
  ],
  "guiSlots": ["center", "topright", "bottomleft"],
  "stats": {
    "damagePotential": 0.9,
    "attackSpeed": 1.6,
    "knockback": 1.1,
    "bonusAttack": 0.5,
    "attackMultiplier": 1.1,
    "durabilityMultiplier": 1.2,
    "damageCutoff": 15.0,
    "repairModifier": 1.0
  }
}
  1. 通过 Resource Loader 或资源包提供模型和纹理:
resources/tinkersschema/
├── models/item/tools/war_club.tcon.json
├── textures/items/tools/war_club/
│   ├── handle.png
│   ├── limb1.png
│   ├── limb2.png
│   └── limb1_broken.png
└── lang/
    ├── en_us.lang
    └── zh_CN.lang
  1. 启动游戏。你的工具会出现在工具站和 Tinkers' Construct 创造模式标签页中。

配置参考

必填字段

字段 描述
id 注册名称,格式为 namespace:path
tooltype sword、harvest 或 bow
parts 有序的工具部件列表

可选字段

字段 默认值 描述
station "table" table(工具站 + 工具锻造台)或 forge(仅工具锻造台)
categories [] WEAPON、HARVEST
traits [] 固有特性 ID
harvestToolClass null pickaxe、shovel、axe
effectiveMaterials [] AOE 工具的方块材料(ROCK、WOOD 等)
aoeRange [1,1,1] 采掘工具的 AOE 尺寸
repairParts [1] 用于修复的部件索引
repairModifiers {} 每个部件索引的修复倍率
guiSlots preset 槽位位置(topleft、center、"12,62" 等)

属性

所有值默认为 Tinkers' Construct 的基准值:

属性 默认值 适用对象
damagePotential 1.0 全部
attackSpeed 1.6 全部
knockback 1.0 全部
bonusAttack 0.0 全部
attackMultiplier 1.0 全部
durabilityMultiplier 1.0 全部
miningSpeedModifier 1.0 全部
damageCutoff 15.0 全部
repairModifier 1.0 全部
drawSpeedMultiplier 1.0 bow
rangeMultiplier 1.0 bow
projectileDamageMultiplier 1.0 bow
drawMoveSpeed null bow

弓属性

bow 工具的附加字段:

字段 默认值 描述
drawSpeedMultiplier 1.0 基于材料得出的拉弓速度的倍率
rangeMultiplier 1.0 基于材料得出的射程的倍率
projectileDamageMultiplier 1.0 基于材料得出的弹射物额外伤害的倍率
drawMoveSpeed null 拉弓时保留的移动速度。省略则使用原版减速

资源

模型和纹理遵循标准资源包布局。将它们放在 .minecraft/resources/tinkersschema/ 中(配合 Resource Loader)或将它们打包为资源包。

  • 模型:models/item/tools/<tool_name>.tcon.json —— 分层工具模型
  • 纹理:textures/items/tools/<tool_name>/<layer>.png —— 灰度,16×16
  • 语言:lang/<locale>.lang —— 键为 item.<modid>.<name>.name 和 .desc

灰度纹理会按照 Tinkers' Construct 自身工具所使用的相同惯例,在渲染时由材料颜色着色。

未来计划

  • CraftTweaker/ZenScript 集成
  • 弩和弹药(箭、弩箭、投掷物)
  • JSON 定义的自定义工具部件
  • 稳定的 API 和完整文档

已知限制

  • 工具行为(横扫攻击、AOE 逻辑、弓的拉弓机制)继承自 Tinkers' 的基类,无法通过 JSON 重新配置。
  • 模型路径绑定到 Tinkers' 的加载惯例:models/item/tools/<name>.tcon.json。
  • effectiveMaterials 目前仅支持原版方块材料。
  • 配置更改需要重启游戏(CraftTweaker 1.12.2 不支持 /reload)。

许可证

MIT。基于 ForgeDevEnv(MIT,CleanroomMC)构建。

致谢

  • SlimeKnights —— Tinkers' Construct 2
  • Lumien231 —— Resource Loader
  • CleanroomMC —— ForgeDevEnv

AI 辅助开发。