匠人的奉献

匠人的奉献

真正的匠魂整合:生物携带匠魂装备生成,战利品、配方与交易全部替换

工匠的构成

Tinkers' Devotion

Tinkers' Devotion:真正的匠魂整合与沉浸体验!原版工具、武器和盔甲在合成配方、战利品、生物装备和村民交易中全部替换为对应的匠魂(TC)等价物。你的打造之路没有界限,世界也应如此!

该模组设计为可扩展,因此替换系统应能自动兼容大多数模组!大多数替换系统可单独开关、按物品类型限定范围,或按模组列入黑名单。详见下方的配置。


功能特性

1. 生物装备

携带原版工具或盔甲生成的生物将改为装备对应的匠魂等价物,每个生物独立生成,材质偏向于同等级。这会影响盔甲、近战武器和远程武器。

2. 战利品表

箱子战利品、钓鱼池和生物掉落物中的原版工具、武器和盔甲,将替换为同等级匠魂等价物。已附魔物品的附魔会转换为加权随机的匠魂强化,作为替换流程的一部分。

3. 合成配方

以原版工具、盔甲和远程武器为输出的合成配方被禁用(通过 Mantle)。以原版工具为输入的配方(例如需要弓的发射器)将被重写以接受同等级的匠魂等价物。此功能设计用于所有需要原版物品作为配方输入的模组配方。

强烈建议使用 JEI,因为它会在每个槽位显示候选的匠魂工具,并在提示框中显示等级提示。

4. 村民交易

所有涉及此类物品的村民交易(例如盔甲商、工具匠、渔夫)将在生成时替换为确定性的交易(例如工具匠的铁剑将替换为2级匠魂剑等价物)。流浪商人也以相同方式处理。

5. 自定义模组物品支持

上述4个系统针对原版物品触发,默认不触及模组物品,因为模组的工具构建方式不同。我支持包含任何模组物品,只需在 config/tinkersdevotion/item_aliases.json 中添加与原版物品的对应关系,例如:"twilightforest:steeleaf_pickaxe": "minecraft:iron_pickaxe"。现在,锟钢镐将被匠魂铁镐等价物替换,并将在战利品、生物、交易和配方中被替换!它们自身的配方也会像原版一样被禁用。只有匠魂物品不能被别名化。


进阶技术细节

如果只想游玩,请跳到配置。

总体流程

模组核心是一个共享的 tryReplace() 函数:输入原版物品,输出匠魂等价物(匹配类别、加权材质、附魔转换为强化)。其余部分只是将物品传递给该函数的钩子。

四个入口点接入 tryReplace():

  • 首次加载世界: 扫描所有已加载的配方,生成一个包含匠魂感知替换的数据包,并自动重新加载。
  • 生物生成: 一个 EntityJoinLevelEvent 处理器会交换生物槽位中的任何原版物品。
  • 战利品生成: 一个 Forge 全局战利品修改器对结果列表执行相同的交换。
  • 村民交易生成: 交易列表在注册时被包装,因此交易结果会经过相同的交换。

因为每个钩子都汇聚到同一个 tryReplace(),所以生物的钻石斧和箱子的钻石斧会以相同的方式生成。

材质选择:80 / 10 / 10 分配 (可配置)

我们选择与原版物品类别(剑/镐类型等)匹配的匠魂工具,然后根据加权分配对每个部件进行材质roll取:

  • 80% 标准材质: 为该等级手工挑选的匠魂材质,使结果感觉自然。
  • 10% 同等级随机: 等级内的多样性。
  • 10% 跨等级随机: 跨等级变化,上限为可配置的最高等级(默认为钻石),确保你不会在游戏前期遇到随机的亥伯龙僵尸。

完整的标准材质映射:

原版等级 工具标准材质 盔甲标准材质
木质 tconstruct:wood —
石质 tconstruct:rock —
皮革 — tconstruct:copper
铁质 / 锁链 tconstruct:iron tconstruct:iron
金质 tconstruct:rose_gold tconstruct:gold
钻石 tconstruct:cobalt tconstruct:cobalt
下界合金 tconstruct:hepatizon tconstruct:hepatizon

附魔 → 匠魂强化

预附魔的原版物品会将其附魔转换为匠魂强化。

  1. 预算: 计算原版附魔等级总和,取 ceil(sqrt(totalLevels × 4)),上限为7。锋利V、耐久III、经验修补I约产生6点预算。
  2. 强化池: 根据你已安装的匠魂配方构建,因此附加模组的强化会自动包含。不满足前置条件的强化会被过滤。
  3. 专精加权: 专精强化(专门适用于某种"类型"的工具,例如锋利)的出现概率大约是通用强化的8倍。可调整。
  4. 花费预算: 每一步,要么升级现有强化(默认65%几率),要么选择一个新强化。如果预算溢出,则添加额外槽位强化。

配置中的跳过列表可防止不需要的强化出现(默认包含 netherite、creative_slot、draconic 等)。

兼容性与可扩展性

  • 匠魂附加模组: 通过标准标签和 Forge 工具动作自动识别。已在 Tinkers' Things、TCIntegrations、Tinkers Levelling Addon 和 Tinkers' Thinking 上测试。
  • 附加材质: 实时从 MaterialRegistry 读取。新材质加入即可被选用。自定义等级材质可用于盔甲和远程武器;工具需要原版等级映射。
  • 模组配方: 与扫描原版配方的过程相同。数据包配方应能自动处理。
  • 模组战利品、生物装备、村民职业: 都与原版使用相同的钩子。无需白名单。
  • JEI: 已集成。替换物会在每个槽位循环显示有效的匠魂工具。配方转移支持原版3×3、玩家物品栏、匠魂工作站以及用户配置文件中声明的任何容器。
    • 注意:其他合成界面可能需要特殊处理,我尚未专门考虑!如有任何问题请告知。

配置

将 jar 文件放入模组文件夹并加载世界即可。

默认配置非常合理,但如果你想调整,首次启动后在 config/ 下会出现四个文件:

文件 格式 控制内容
tinkersdevotion-common.toml TOML 主要开关。可独立禁用原版合成移除、生物、战利品或村民替换。调整部件匹配阈值、战利品差异、强化专精权重。
tinkersdevotion/tool_exclusions.json JSON 按槽位或动作将特定匠魂工具列入黑名单。阻止匕首在配方中替代大刀,阻止粘液套装作为盔甲战利品生成等。默认已预填充。
tinkersdevotion/modifier_skip_list.json JSON 永远不应出现在随机附魔池中的匠魂强化 ID。默认已预填充。
tinkersdevotion/item_aliases.json JSON 将模组物品视作原版物品(参考功能 #5)。

命令

  • /tinkersdevotion generate 重新运行配方扫描并重写生成的数据包。在安装或移除模组后使用。OP 等级 2。
  • /tinkersdevotion generate reset 将两个 JSON 配置文件重置为默认值并重新生成。TOML 配置不受影响。

配方数据包会在首次加载世界时自动生成,因此只有在更改模组列表时才需要此命令。


问题与反馈

留下评论或加入 Discord 聊天提问。如果你发现了 Bug 或有特定请求,请在 GitHub 问题追踪器 上标记。

![Discord](https://img.shields.io/badge/Discord-Join the server-5865F2?logo=discord&logoColor=white&style=flat-square)

  • 我只是一个人!!
  • 常见问题解答即将推出。

需求与兼容性

  • Minecraft 1.20.1,Forge 47.4+
  • 匠魂 3.11+
  • Mantle 1.11+(匠魂的依赖,你应该已经有了)
  • JEI 15.20+ (可选,用于配方显示和 Shift+点击转移)

已使用几乎所有匠魂附加模组进行测试(在本模组发布时)!对任何使用标准标签并通过匠魂配方系统注册强化的 TC 附加模组友好。

模组物品(如果你有兴趣替换来自其他模组如 epic-fight、simply-swords 等的工具):默认不替换任何模组物品,但你可以添加简单的 mod:mytool, minecraft:vanillaItem 对来替换它们(参考功能 #5)!为对所有人都超级友好而设计:) 如有任何问题请告知!


致谢与许可

匠魂 和 Mantle 由 SlimeKnights 制作。没有它们,这个模组将无从整合。

许可:保留所有权利。 简要说明:

  • 可自由包含在任何公共或私人整合包中。注明出处很好,但非必需。
  • 可自由用于个人用途。
  • 未经书面许可,禁止:修改、分支、重新上传或移植。

完整条款见 LICENSE.md。如需许可申请,请打开一个 GitHub Issue。