Оптимизирована генерация Jigsaw-структур. Ниже приведены детали внесённых улучшений. Сообщайте о конфликтах или проблемах при использовании мода в сборках!
- Замена неоптимизированных вызовов VertexShape на BoxOctree для проверки пересечений только с соседними элементами.
В стандартной реализации для хранения границ элементов используется VoxelShape. При добавлении нового элемента выполняется проверка пересечений со всеми существующими элементами, что приводит к замедлению работы при большом количестве частей. Оптимизация заменяет VoxelShape на BoxOctree, позволяя проверять только ближайшие элементы, что существенно снижает нагрузку.
- Пропуск проверки дочерних элементов при блокировке Jigsaw Block.
Если Jigsaw Block родительского элемента заблокирован границей структуры или другим элементом, проверка совместимости с дочерними элементами пропускается. Это уменьшает количество дорогостоящих операций проверки.
- Оптимизация процедуры сопоставления Jigsaw Block.
Сокращено количество обращений к свойствам блоков, упрощена проверка данных соединений. Улучшения заметны в структурах с большим количеством Jigsaw Blocks.
- Ускорение загрузки крупных NBT-структур.
Ранняя проверка границ позволяет отсечь ненужные позиции до обработки StructureProcessors. Оптимизация не применяется для структур с переопределённым методом finalizeProcessing (например, Trail Ruins).
- Оптимизация логики приоритезации Jigsaw Block (1.21.1+).
Ускорено получение данных selection_priority и изменена система сортировки. Может влиять на воспроизводимость seed в редких случаях.
- Пропуск повторных проверок неудачных SinglePoolElements.
Исключаются повторные проверки элементов, которые ранее не прошли условия размещения. Опция deduplicateShuffledTemplatePoolElementList дополнительно ускоряет работу за счёт изменения логики формирования структур (нарушает seed-параметричность).
- Оптимизация памяти через палитру StructureBlockInfo (1.21.4+).
Замена списка позиций на палитру сокращает потребление памяти. Полный список генерируется только при необходимости и удаляется сборщиком мусора.