CurseForge2 天前Bro Know My EMI Folder 是一个适用于 Minecraft 1.21.1 / NeoForge 的 EMI 附属模组。它为 EMI 的索引侧边栏添加可折叠分组,并通过 KubeJS 定义分组内容。
这个折叠行为受到 REI collapsible entries 的启发。友情链接:RoughlyEnoughItems。
RecipeViewerEvents.groupEntries 定义。all、any、none、not、id、mod、tag、block、blockTag、spawnEggs。blockTag,可以按方块物品对应方块的方块 tag 折叠。id 和 mod 过滤加入候选组索引,并缓存 stack 派生信息。foldMod,可按 EMI stack id 的命名空间折叠条目,mod id 支持带或不带 @ 前缀。foldSpawnEggs,可折叠底层实现为 Minecraft SpawnEggItem 的物品。unfold、unfoldId、unfoldFluid、unfoldAll、unfoldAllId、unfoldAllFluid,可从指定折叠组或所有折叠组中排除条目。添加一个 KubeJS client script:
RecipeViewerEvents.fold(event => {
event.fold('broknowmyemifolder:ores', 'translate:emi_group.broknowmyemifolder.ores', '#c:ores')
event.fold('broknowmyemifolder:tools', 'translate:emi_group.broknowmyemifolder.tools', ['#c:tools', 'minecraft:shears'])
event.foldId('broknowmyemifolder:boats', 'translate:emi_group.broknowmyemifolder.boats', ['minecraft:oak_boat', 'minecraft:spruce_boat'], {
spread: 4,
color: 'rainbow'
})
event.foldMod('broknowmyemifolder:citadel', 'translate:emi_group.broknowmyemifolder.citadel', '@citadel', {
color: 'random'
})
event.foldSpawnEggs('broknowmyemifolder:spawn_eggs', '刷怪蛋', {
spread: 4,
color: 'random'
})
event.unfoldAll('quark:seed_pouch')
})
组名可以是普通文本、文本组件,或带 translate: 前缀的翻译键字符串。
可用方法:
event.fold(id, name, filter, options?)
event.fold(name, filter, options?)
event.foldFluid(id, name, filter, options?)
event.foldFluid(name, filter, options?)
event.foldId(id, name, ids, options?)
event.foldId(name, ids, options?)
event.foldMod(id, name, mods, options?)
event.foldMod(name, mods, options?)
event.foldSpawnEggs(id, name, options?)
event.foldSpawnEggs(name, options?)
event.unfold(groupId, filter)
event.unfoldFluid(groupId, filter)
event.unfoldId(groupId, ids)
event.unfoldAll(filter)
event.unfoldAllFluid(filter)
event.unfoldAllId(ids)
unfold 会把匹配条目从指定折叠组里拿出来。unfoldAll 会把匹配条目从所有折叠组里拿出来。
foldMod 会按 EMI stack id 的命名空间折叠条目。它接受带或不带 @ 前缀的 mod id,例如 '@citadel'。
foldSpawnEggs 会折叠底层实现为 Minecraft SpawnEggItem 的物品,不依赖物品 id 是否以 _spawn_egg 结尾。
复杂过滤可以传结构化对象。普通 #tag 匹配的是物品 tag;如果要按方块物品对应方块的方块 tag 过滤,用 blockTag。
event.fold('my_pack:tools_without_axes', '非斧工具', {
tag: '#c:tools',
none: '#c:tools/axes'
})
event.fold('my_pack:wooden_block_items', '木质方块物品', {
mod: 'minecraft',
blockTag: '#minecraft:logs'
})
可选参数:
{
spread: 4,
color: 'rainbow'
}
spread 控制预览卡片之间的横向像素偏移。color 支持数字、'#RRGGBB'、'rainbow' 或 'random'。
支持的脚本方法和参数见 KubeJS API。
从左下角 EMI 按钮打开 EMI 设置。BKMEF 分组里有:
启用 EMI 索引折叠:关闭或开启折叠索引,不需要删除 KubeJS 脚本。显示折叠重载播报:关闭或开启折叠分组加载/重载后的聊天栏提示。