元素大典

元素大典

Elementarium为Minecraft提供了完整的元素周期表,内置支持通过JSON或KubeJS定义的自定义元素。这是面向化学模组和模组包的轻量级基础。

矿石与资源

Elementarium

完整的元素周期表,开箱即用,你添加的一切都以完全相同的方式工作。

Elementarium 是一个面向 Forge 1.20.1 的数据驱动型材料库。开箱即可获得全部118种元素,形态涵盖锭、板、齿轮、粉、流体等,并且已配置好配方、标签和统一整洁的外观。需要你自己的合金?通过 JSON 或 KubeJS 添加几行即可免费获得全套支持。不需要某些东西?在一个配置文件中将其关闭即可。

关键是,不再会有两个模组各自提供三种不同的钢板的困扰了 :)


亮点

  • 包含全部118种元素,默认配置,也可自定义。
  • 每种材料都会自动生成一整套形态,包括:
    • 锭、粒、块
    • 粉、小撮粉、微量粉
    • 板、双层板、杆、齿轮、线材
    • 流体:熔融态、液态、气态(每种都包含流体方块和桶)
  • 默认也会生成配方……完整的压缩合成网络
  • 所有物品都带有跨模组的 forge: 标签(如 forge:ingots/steel、forge:plates/steel、forge:gears/steel 等),让你的物品和其他模组的物品能无缝协作。
  • 数秒内添加你自己的材料 —— 通过 JSON 或 KubeJS,效果相同:生成带有配方、标签和模型的真实物品。
  • 高度模块化 —— 可在单个配置文件中,全局或按材料禁用任何材料或形态。
  • 内置 JEI 支持 —— 元素信息页面以及目录中的所有物品和配方。
  • 游戏内周期表 —— 可收集的元素浏览器(默认按键:P)。
  • 处处轻量且可选 —— JEI、KubeJS 和 CraftTweaker 均为软依赖。

周期表


添加一种材料

模组自带现成模板。首次启动时,请查看 config/ptmaterials/examples/ 目录下的 bronze.json 和 material.js,这些是用法示例。

使用 JSON,无需其他模组

将任意 *.json 文件放入 config/ptmaterials/ 目录:

{
  "materials": [
    {
      "name": "bronze",
      "displayName": "bronze",
      "color": "#4A4A4A",
      "style": "metallic",
      "state": "solid",
      "forms": ["ingot", "nugget", "block", "dust", "plate", "rod", "gear", "wire", "molten"]
    }
  ]
}

通过 JSON 添加的青铜和气体示例

就这样,重启后你就获得了染色的青铜物品、青铜块、熔融青铜流体及桶、所有压缩配方和所有 forge: 标签。

字段 作用
name 小写 ID,需唯一。必填。
forms 要生成的形态(见上方列表)。必填。
color 颜色,格式为 #RRGGBB。
style metallic(金属)、shiny(闪亮)、dull(暗淡)或你自己的纹理文件夹。
state solid(固态)、liquid(液态)或 gas(气态)。
displayName 游戏内显示名称(可选 —— 否则由 name 派生)。
symbol 化学符号,在 JEI 中显示(可选)。
atomicNumber 用于排序(可选)。
secondaryColor 覆盖/次要颜色(可选)。

使用 KubeJS,在脚本中完成同样的事

将此脚本放入 kubejs/startup_scripts/(需安装 KubeJS):

PTMaterials.create('adamantium')
    .displayName('adamantium')
    .color('#4A4A4A')
    .style('metallic')
    .state('solid')
    .forms('ingot', 'nugget', 'block', 'dust', 'plate', 'rod', 'gear', 'wire', 'molten')
    .register()

通过 KubeJS 脚本添加的艾德曼合金 脚本材料会覆盖在 JSON 之上,因此脚本可以覆盖默认设置。


模块化

在 config/ptmaterials/config.json 中剔除任何不需要的内容,无需编辑元素数据:

{
  "disabledMaterials": ["titanium"],
  "disabledForms": ["wire"],
  "materials": {
    "iron": { "disabledForms": ["gear"] }
  }
}
  • disabledMaterials 移除整类材料(完全不再有钛)。
  • disabledForms 从所有材料中移除某种形态(任何地方都不再有线材)。
  • materials.<名称>.disabledForms 从某一种材料中移除形态(不再有铁齿轮)。

被移除的内容会干净地消失,物品、配方、标签、战利品和周期表条目都会一起移除,不留任何残留。非常适合将模组定制成你整合包所需的确切内容。


调整配方

Elementarium 中的每个物品都是普通的、带有 forge: 标签的物品,因此 CraftTweaker 和 KubeJS 无需特殊支持即可重新调整生成的配方:

// CraftTweaker: 替换默认方块配方
recipes.remove(<item:ptmaterials:steel_block>);

想通过脚本创建新材料?请使用 JSON 或 KubeJS(见上文),CraftTweaker 用于调整现有内容,因为其脚本在游戏注册表构建之后运行。


为整合包而生

大多数科技模组都在重新发明相同的基础资源,导致物品重复、纹理冲突、ID 不兼容。Elementarium 是一个共享的材料基础:为你的整个整合包提供统一的命名方案、统一的外观和统一的标签集。只需定义一次材料,即可保持所有内容一致,让模组使用共同语言,而不是各自制作自己的铜齿轮。


兼容性

模组 提供的功能
JEI 可选。元素信息页面 + 完整物品/配方目录。
KubeJS 可选。从启动脚本创建材料。
CraftTweaker 可选。开箱即可调整生成的配方/标签。

即使完全未安装这些模组,一切也能正常运行。


许可证

你可以自由地将 Elementarium 包含在任何公共或私人整合包中,无需请求许可。

唯一的要求是提供适当的署名,并链接回本模组项目页面。

如果你想进一步支持本项目,我将非常感谢你同时包含对我 YouTube 频道的链接:https://www.youtube.com/@Navaronee。这将帮助项目成长,并支持未来模组的开发。

感谢你的支持!❤️

MIT 许可证。