|
Icterine (Icterine)Github |相关wiki |源站链接支持: fabric , forge , neoforge , quilt优化进度 (特别是InventoryChangeTrigger)
摘要
- 优化了获取物品的进度触发;
- 可能与原版不兼容,但不会影响原版进度,也不应影响绝大多数模组/数据包;
- 即使影响了某些内容,进度仍应可通过仅放下并拾起所需物品之一来获得;
- 目前没有已知的不兼容性或问题;
- 所有对原版代码的注入都可以在配置文件中禁用。
- 所有更改均在服务器端进行。
结果
在具有3名活跃玩家在线的专用服务器上进行了现场测试,运行自定义Forge模组包,包含超过200个模组和[BlazeandCave\'s Advancements Pack](链接),该数据包添加了超过950个进度。 使用Spark收集了一个小时的统计数据。
使用Icterine,InventoryChangeTrigger执行速度几乎快了 *2.5倍*(截至版本1.1.0),花费约7.5%的刻度时间,而不是20%。
Icterine 1.0.0的统计数据比较(约快了2倍):
原版InventoryChangeTrigger的工作方式
- 当游戏检测到玩家物品栏中的堆栈发生更改时,将调用InventoryChangeTrigger。这包括拾取物品,放下物品,放下整个堆栈,移动物品到你的物品栏中。
- InventoryChangeTrigger计算您的物品栏中的空插槽,非空插槽和完全填充的插槽数。此信息可以用于进度触发器,但在原版中未使用。
- InventoryChangeTrigger遍历注册的进度条件。
- 如果条件具有插槽数要求,并且它们与步骤2中的值不匹配,或者如果条件没有物品要求,则跳过条件。
- 如果条件仅具有一个物品要求,则检查更改的堆栈是否符合此要求。
- 如果条件具有多个物品要求(例如,“用碎片覆盖我”需要拥有完整的地狱装备套装),则对物品栏中的每个要求都检查每个物品堆栈(但满足的要求会被移除并且不再检查)。
- 物品匹配,特别是标签匹配,非常耗费资源。但是游戏首先检查玩家的物品类型是否与要求中的物品类型匹配,然后才检查其他参数,如数量,附魔和其他NBT数据。
Icterine的优化工作原理
- 在步骤1中,当您放下堆叠或将其移出物品栏时(例如,放入箱子),不调用InventoryChangeTrigger。这由配置文件中的 `ignore_triggers_for_emptied_stacks` 参数控制。
- 同样,在堆栈减少但未被清空时(例如,玩家从完整堆栈中放下单个物品)时,也不调用InventoryChangeTrigger。由 `ignore_triggers_for_decreased_stacks` 控制。
- 同样,如果堆栈大小增加,但未超过任何进度所需的阈值,则也不调用InventoryChangeTrigger。例如,土堆栈大小从52增加到53,但在您的模组包中没有获得53土的进度。由 `optimize_triggers_for_increased_stacks` 控制。
- 修改游戏在玩家打开容器屏幕时如何检查更改的物品,以便它不会在您打开任何内容时立即将所有堆栈视为已更改。由 `initialize_inventory_last_slots` 控制。
- 在步骤6中,首先检查更改的插槽是否与任何要求匹配,然后再检查物品栏中的其他堆栈。由 `optimize_multiple_predicate_trigger` 控制。
- 在步骤7中,首先比较堆栈计数以避免不必要的标签匹配。还使用先前的堆栈计数来避免更多不必要的匹配。由 `check_count_before_item_predicate_match` 控制。
进一步的优化正在计划中。
支持的版本
Icterine v1.2.0与Minecraft Fabric/Quilt 1.18.2至1.19.4以及Forge 1.18.2至1.19.2 _(forge moment)_ 兼容。
Icterine v1.3.0与Fabric/Quilt 1.20至1.20.4,Forge 1.19.3至1.20.4,以及NeoForge 1.20.1至1.20.4兼容,并具有与v1.2.0相同的功能。
在[版本页面](链接)上使用筛选器选择正确的文件。
如果您需要将其移植到其他版本,请在[Discord](链接)服务器上提出问题或询问。
截图:
https://i.sodamc.com/modrinth/f8bs87ZRHO.jpg?x-oss-process=style/forge2]
来自Modrinth所有游戏版本1.20.31.20.41.20.21.201.20.11.19.31.19.41.18.21.191.19.11.19.2所有类型neoforgefabricquiltforgeIcterine 1.3.0 NeoForge 1.20.3 - 1.20.4Icterine-neoforge-1.20.3-4-1.3.0.jar下载1.3.0#ReleasePorted to 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4! Fabric, Quilt, Forge, NeoForge!Icterine now works on any version between 1.18.2 and 1.20.4.展开版本: 1.3.0支持游戏: 1.20.3, 1.20.4类型:NeoForgeRelease下载次数: 828Icterine 1.3.0 NeoForge 1.20.2Icterine-neoforge-1.20.2-1.3.0.jar下载1.3.0#ReleasePorted to 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4! Fabric, Quilt, Forge, NeoForge!Icterine now works on any version between 1.18.2 and 1.20.4.展开版本: 1.3.0支持游戏: 1.20.2类型:NeoForgeRelease下载次数: 95Icterine 1.3.0 Fabric 1.20.3 - 1.20.4Icterine-fabric-1.20.3-4-1.3.0.jar下载1.3.0#ReleasePorted to 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4! Fabric, Quilt, Forge, NeoForge!Icterine now works on any version between 1.18.2 and 1.20.4.展开版本: 1.3.0支持游戏: 1.20.3, 1.20.4类型:FabricQuiltRelease下载次数: 45,257Icterine 1.3.0 Fabric 1.20.2Icterine-fabric-1.20.2-1.3.0.jar下载1.3.0#ReleasePorted to 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4! Fabric, Quilt, Forge, NeoForge!Icterine now works on any version between 1.18.2 and 1.20.4.展开版本: 1.3.0支持游戏: 1.20.2类型:FabricQuiltRelease下载次数: 500Icterine 1.3.0 Fabric 1.20 - 1.20.1Icterine-fabric-1.20.0-1-1.3.0.jar下载1.3.0#ReleasePorted to 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4! Fabric, Quilt, Forge, NeoForge!Icterine now works on any version between 1.18.2 and 1.20.4.展开版本: 1.3.0支持游戏: 1.20, 1.20.1类型:FabricQuiltRelease下载次数: 109,072Icterine 1.3.0 Forge 1.20.3 - 1.20.4Icterine-forge-1.20.4-1.3.0.jar下载1.3.0#ReleasePorted to 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4! Fabric, Quilt, Forge, NeoForge!Icterine now works on any version between 1.18.2 and 1.20.4.展开版本: 1.3.0支持游戏: 1.20.3, 1.20.4类型:ForgeRelease下载次数: 326Icterine 1.3.0 Forge 1.20.2Icterine-forge-1.20.2-1.3.0.jar下载1.3.0#ReleasePorted to 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4! Fabric, Quilt, Forge, NeoForge!Icterine now works on any version between 1.18.2 and 1.20.4.展开版本: 1.3.0支持游戏: 1.20.2类型:ForgeRelease下载次数: 247Icterine 1.3.0 Forge 1.20 - 1.20.1Icterine-forge-1.20.0-1-1.3.0.jar下载1.3.0#ReleasePorted to 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4! Fabric, Quilt, Forge, NeoForge!Icterine now works on any version between 1.18.2 and 1.20.4.展开版本: 1.3.0支持游戏: 1.20, 1.20.1类型:ForgeNeoForgeRelease下载次数: 260,947Icterine 1.3.0 Forge 1.19.3 - 1.19.4Icterine-forge-1.19.3-4-1.3.0.jar下载1.3.0#ReleasePorted to 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4! Fabric, Quilt, Forge, NeoForge!Icterine now works on any version between 1.18.2 and 1.20.4.展开版本: 1.3.0支持游戏: 1.19.3, 1.19.4类型:ForgeRelease下载次数: 463Icterine 1.2.0 ForgeIcterine-forge-1.2.0.jar下载1.2.0#Release* Small bug fixes* Now works with Minecraft from 1.18.2 to 1.19.2!展开版本: 1.2.0支持游戏: 1.18.2, 1.19, 1.19.1, 1.19.2类型:ForgeRelease下载次数: 138,748Icterine 1.2.0 FabricIcterine-fabric-1.2.0.jar下载1.2.0#Release* Small bug fixes* Now works with Minecraft from 1.18.2 to 1.19.4!展开版本: 1.2.0支持游戏: 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4类型:FabricQuiltRelease下载次数: 2,614Icterine 1.1.0 ForgeIcterine-forge-1.19.2-1.1.0.jar下载1.1.0#ReleaseAdded new optimizations:* `optimize_multiple_predicate_trigger`* `check_count_before_item_predicate_match`* Internal debugging optimizationsSee the mod\'s main page for optimizations\' descriptions.展开版本: 1.1.0支持游戏: 1.19.2类型:ForgeRelease下载次数: 338Icterine 1.1.0 FabricIcterine-fabric-1.19.2-1.1.0.jar下载1.1.0#ReleaseAdded new optimizations:* `optimize_multiple_predicate_trigger`* `check_count_before_item_predicate_match`* Internal debugging optimizationsSee the mod\'s main page for optimizations\' descriptions.展开版本: 1.1.0支持游戏: 1.19.2类型:FabricQuiltRelease下载次数: 112Icterine 1.0.0 ForgeIcterine-forge-1.19.2-1.0.0.jar下载1.0.0#Release展开版本: 1.0.0支持游戏: 1.19.2类型:ForgeRelease下载次数: 111Icterine 1.0.0 FabricIcterine-fabric-1.19.2-1.0.0.jar下载1.0.0#Release展开版本: 1.0.0支持游戏: 1.19.2类型:FabricQuiltRelease下载次数: 109全部版本
markdown_parsed
文章类型:收录
layui.use([\'form\'], function(){
var form = layui.form;
});
Icterine |
楼主
2025-8-10 18:01:32
回复(0)
收起回复
|