社区4群:1045617175 进群吹水聊天!众多整合包作者、插件作者、玩家在内哦!不定时发福利,公布重要通知!
...
兄弟懂我的EMI折叠者(Bro Know My EMI Folder)
为 EMI 的索引侧边栏添加了可折叠分组,并通过 KubeJS 定义分组内容
仅客户端优化国创实用管理
资源外链
CurseForgeCurseForge2 天前

Bro Know My EMI Folder

Bro Know My EMI Folder 是一个适用于 Minecraft 1.21.1 / NeoForge 的 EMI 附属模组。它为 EMI 的索引侧边栏添加可折叠分组,并通过 KubeJS 定义分组内容。

这个折叠行为受到 REI collapsible entries 的启发。友情链接:RoughlyEnoughItems

功能

  • 将 EMI 索引侧边栏中的条目折叠成由 KubeJS 定义的分组。
  • 折叠后仍支持正常搜索。搜索组内物品时,会显示匹配到的具体条目。
  • 搜索结果会自动去重。同一个物品属于多个折叠组时,只显示一次,并在 tooltip 中列出它所属的所有组。
  • 普通 EMI 索引中允许同一个物品进入多个折叠组。
  • 左键点击折叠组展开;Alt+左键点击展开后的成员收起对应组。
  • 折叠预览使用扑克牌式平铺,支持自定义间距和背景颜色。
  • 会尽量兼容 KubeJS 原有的 RecipeViewerEvents.groupEntries 定义。

v0.0.3 新增

  • 新增结构化物品过滤器,支持 allanynonenotidmodtagblockblockTagspawnEggs
  • 新增 blockTag,可以按方块物品对应方块的方块 tag 折叠。
  • 在 EMI 游戏内设置里加入 BKMEF 分组,可开关折叠功能和重载聊天播报。
  • 新增折叠加载/重载聊天提示,减少“折叠没生效但只能翻 log”的情况。
  • 优化折叠重建性能,为 idmod 过滤加入候选组索引,并缓存 stack 派生信息。
  • 新增开发诊断日志和合成折叠性能压测任务。

v0.0.2 新增

  • 新增 foldMod,可按 EMI stack id 的命名空间折叠条目,mod id 支持带或不带 @ 前缀。
  • 新增 foldSpawnEggs,可折叠底层实现为 Minecraft SpawnEggItem 的物品。
  • 新增 unfoldunfoldIdunfoldFluidunfoldAllunfoldAllIdunfoldAllFluid,可从指定折叠组或所有折叠组中排除条目。

使用

添加一个 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 脚本。
  • 显示折叠重载播报:关闭或开启折叠分组加载/重载后的聊天栏提示。
资源打赏
参与人数打赏物品(0)

暂未收到任何礼物
快来成为第一个打赏人吧~
资源信息
资源版本
1.21.1
核心/平台
logoNeoForge
打赏
加载中...
创作者
...
JIA这个人很懒,没有留下任何介绍...
其他信息
语言信息中文
更新于20 天前
发布时间20 天前
资源来源
资源许可证/License