Icterine оптимизирует работу триггера InventoryChangeTrigger, который отвечает за выдачу достижений при изменении предметов в инвентаре игрока. В ванильной игре этот триггер вызывается при подборе, выбрасывании и перемещении предметов, а также при открытии контейнеров, когда игра считает изменившимися все слоты. На сборках с большим числом модов и датапаков такие проверки заметно нагружают сервер.
Мод сокращает число лишних вызовов триггера и меняет порядок проверки условий: сначала сравниваются слот и количество предметов, и только потом выполняются тяжёлые проверки тегов и NBT. Это ускоряет обработку достижений и снижает долю тика, уходящую на эти проверки. Все изменения выполняются на стороне сервера и не затрагивают клиент.
- Пропуск вызовов триггера при выбрасывании стака или перемещении предметов из инвентаря.
- Игнорирование уменьшения стака, если он не опустел, и увеличения без достижения нужного порога.
- Открытие контейнера больше не помечает все слоты как изменённые.
- Сначала проверяется изменённый слот, затем остальные стаки инвентаря.
- Сравнение количества предметов до проверки тегов и NBT.
- Каждую оптимизацию можно отключить в конфигурационном файле.
Мод подходит для крупных сборок с множеством модов и датапаков достижений, где проверки инвентаря создают заметную нагрузку. Возможны расхождения с ванильным поведением, но стандартные достижения и большинство модов не затрагиваются: при необходимости достижение всё равно можно получить, подобрав нужный предмет.
