Skip to main content

简介

OneEnoughItem

本模组开发的初衷是解决物品辞典重复的问题,三种银四种铅五种番茄六种玉米,还各自有着不同的配方。

使用OEI,可以便捷地将重复物品替换为唯一指定代表物品。

典型案例

e7b458ea

整合包里有17种番茄

304e2a74

整合包中里六种银矿石

而且,他们还有着各自独立的配方!

如今,那样的日子一去不复返了,有了OEI,你可以在物品刚创建时就将其替换为唯一指定代表物品!

使用方式

OEI由数据包驱动,支持热重载,路径data/oei/replacements,你可以通过下面的写法实现非常简单的物品替换:

[
{
"matchItems": [
"#forge:ore",
"minecraft:potato",
"minecraft:carrot"
],
"resultItems": "minecraft:egg"
}
]

将需要替换的物品id写进一个"matchItems"列表,再将唯一指定代表物品填在"resultItems"字段,即可在游戏中实现自动替换。

切记:请不要让物品自己替换自己,这极有可能引起bug!

在KubeJS中使用:

ServerEvents.highPriorityData(event => {
event.addJson("oei:replacements/raw_materials.json", [
{
"matchItems":
[
"#forge:raw_materials/silver"
],
"resultItems": "thermal:raw_silver"
}
]);
});

OEI支持标签匹配,如在标签匹配功能的过程中,出现需重载游戏才能使替换效果生效的情况,请考虑使用原始物品id替换,这很可能是和其它模组冲突导致的。

使用内置编辑器:

从1.0.3版本开始,OEI内置替换规则编辑器,默认按下CTRL+R即可打开UI,体验无需大脑的零代码编辑体验!

替换规则编辑器中附带了配方去重功能,使用方式请查询官方说明

使用效果

OEI的物品替换并不是实时检测玩家身上的物品再进行替换,而是发生在非常非常初始的阶段。

有多初始呢?

举个例子,我将整个游戏中的物品都替换成了鸡蛋,那么打开创造模式物品栏就会看见这一幕:

0d887667

是的,从诞生的时刻起,这些物品就不再是原来的自己了!

由此延伸,物品相应的配方也会发生替换,例如这里将铁锭替换成了鸡蛋:

f0922a1f

是的,对于所有物品配方都是自动生效的

并且,在与JEI等配方管理器同时使用时,JEI中展示的配方也会相应地变化:

cce326fc

可以说,只要是JEI所支持的配方,都可以完全自动替换!例如交易或成就。

就算不支持,在游戏中注册过的配方,只要不是非常特殊的硬编码形式,也可以正常实现替换。

此外,将物品替换为空气即可彻底移除该物品,但出于兼容性考虑,在创造模式物品栏和 JEI 中,此种改动并不会生效。

深度替换

如果在配置文件中开启了深度替换选项,与物品互动相关的使用场景也可以实现替换,如在将铁锭替换为鸡蛋后,使用鸡蛋为铁傀儡回复生命。

在使用个别独特模组的过程中,如果发现有配方无法正常替换,也可以尝试打开此功能。

该功能仅针对物品检测,无法完全继承原物品自身的功能。

未来计划

  • 支持抹除被移除物品的物品属性,目前已支持抹除被替换物品的食物属性,使其不会出现在生活调味料系列的食物手册上,该功能可在配置文件中关闭。

  • 支持继承被替换物品的全部标签。

  • 支持删除被替换物品的全部标签,使其彻底从配方中消失。