外部覆盖模型库

外部覆盖模型库

Minecraft 物品图标的渲染时分层。将额外精灵叠加到任意物品的图标上——由资源包和物品属性驱动,无需编写任何代码。

eoml — 外部覆盖模型库

Minecraft 物品图标的渲染时分层。 在任意物品的图标之上叠加额外精灵图——由资源包和物品属性驱动,无需编写任何代码。 跨加载器库,支持 1.20.1(Forge)、1.21.1(NeoForge) 和 26.1.2(NeoForge)。

这是一个库,不是内容模组。 单独安装它不会改变任何东西。 它是资源包和模组的依赖项,用于实现分层物品图标。 请参阅"功能"部分,了解可直接复制粘贴使用的示例。


功能

为任意物品添加一个额外的图标层,仅当条件为真时显示。

// assets/mymod/eoml/layers/runeblade.json  — 直接将其放入资源包即可
{
  "targets": ["mymod:runeblade", "#minecraft:swords"],

  "layers": [
    { "sprite": "mymod:runes/base_glow" },

    { "sprite": "mymod:runes/drawn_crown",
      "when": { "type": "eoml:item_property", "property": "minecraft:pull", "min": 0.65 } },

    { "sprite": "mymod:runes/cracked",
      "when": { "type": "eoml:variable_range", "name": "property:minecraft:damage", "min": 0.5 } }
  ]
}

图层是累积的——列表顺序即绘制顺序。每个图层可以携带自己的条件,条件可以通过 all_of / any_of / none_of 组合。

以上就是全部功能。无需 Java,无需数据包,无需服务端安装。


特性

图层规则 在任意物品图标上添加任意额外图层,条件控制,支持多层
图案装饰 接管原版盔甲纹饰图案,为其提供自己的精灵图层,可按槽位 / 材质 / 基础模型扩展
物品覆盖 基于谓词的模型切换(assets/<ns>/overrides/item/)
模型覆盖 将外部模型 JSON 提供给原版自己的模型加载器
插件 API 其他模组可以注册自己的变量和条件类型;eoml 将图层系统作为通用扩展平台对外暴露

内置条件: always、variable_equals、variable_range、item_property(原版和模组物品属性)、item_in、all_of / any_of / none_of。

内置变量: 物品 id、任意物品标签,以及任意原版/模组物品属性——因此资源包已经可以基于耐久、堆叠数量、拉弓进度、纹饰材质等来门控图层。


支持的版本

Minecraft 加载器 状态
1.20.1 Forge 47.x ✅
1.21.1 NeoForge 21.1.x ✅
26.1.2 NeoForge 26.1.x ✅

相同的规则 JSON 在三个版本上均可使用。 唯一因版本而异的部分是 property:——例如 minecraft:pulling 存在于 1.20.1 / 1.21.1,但在 26.1.2 上不存在,该版本改用弩/拉弓轴。


客户端 / 服务器

实际上仅客户端可用。 所有数据都从资源栈读取,因此定义位于客户端,并且可在原版服务器上运行——无需服务端安装,无需数据包。模组本身会在两侧加载,在专用服务器上是安全的。


整合包

你可以自由地将 eoml 包含在任何整合包中。无需授权。