Оптимизация звукового движка
Данный мод изменяет механизм планирования звуков в Minecraft, чтобы предотвратить переполнение звукового пула
или смягчить последствия его полного заполнения.
Кратко:
Мод исправляет данные ошибки (и спам в логах):
[Render thread/WARN]: Failed to create new sound handle
[Sound engine/WARN]: Maximum sound pool size 247 reached
и предотвращает перегрузку звукового пула (потерю всех звуков в игре до освобождения пула).
Детали:
Каждый игровой тик звуки собираются и категоризируются по типу (низкий номер категории означает высокий приоритет).
Каждая категория дополнительно сортируется по расстоянию от игрока.
В зависимости от уровня заполнения звукового пула разрешается воспроизведение определённых типов звуков; остальные пропускаются.
При полном заполнении пула все последующие звуки пропускаются (согласно правилам порогов, этого происходить не должно).
Каждый тик выполняется проверка на дублирование, разрешающая лишь ограниченное количество экземпляров одного звука в пределах одного координатного блока (1 блок),
избыточные экземпляры пропускаются.
Звуки категорий MASTER и MUSIC воспроизводятся мгновенно (по запросу), минуя очередь приоритетов и проверку на дублирование
(это необходимо, так как они могут запрашиваться Главным меню или GUI при заморозке внутреннего сервера).
Они всё равно подчиняются правилам порогов заполнения.
Звуки других категорий при запросе мгновенного воспроизведения планируются на текущий тик.
Все параметры настраиваются через ModMenu или ручное редактирование конфигурационного файла.
Значения по умолчанию:
MASTER кат. 0 и всегда разрешены
VOICE кат. 0 и всегда разрешены
PLAYERS кат. 1 и до 95%
HOSTILE кат. 2 и до 90%
BLOCKS кат. 3 и до 80%
MUSIC кат. 4 и до 70%
RECORDS кат. 4 и до 70%
NEUTRAL кат. 5 и до 60%
WEATHER кат. 6 и до 50%
AMBIENT кат. 6 и до 50%
maxDuplicatedSounds : 5
Примечание:
Для альтернативного использования попробуйте инвертировать приоритеты категорий, сохранив пороги заполнения.
Это позволит воспроизводить звуки всех категорий, пропуская наиболее удалённые от вас.