FishNoStuck
Небольшой мод, исправляющий баг, из-за которого рыба полностью прекращает движение MC-182763
Поддерживает Minecraft 1.17.x-1.20.x для Fabric (возможно, Quilt?)/Forge
Принцип работы
Рыбы используют цель ИИ, сканирующую ближайших особей, которая случайным образом выбирает лидера и последователей. Затем рыбы-последователи начинают следовать за лидером.
Данный мод исправляет ошибку в FollowFlockLeaderGoal
, добавляя проверку: является ли ближайшая рыба лидером. Если нет, она добавляется в список последователей.
Если лидер попадает в список последователей, рыба-лидер останавливается и прекращает движение вместе со своими последователями (навсегда!). Исключение: игрок атакует их или переключается в режим выживания, приближаясь вплавь.
Отчет об ошибке в Minecraft: https://bugs.mojang.com/browse/MC-182763
Другие исправления:
- Замена
EntitySelector.NO_SPECTATORS
наEntitySelector.NO_CREATIVE_OR_SPECTATOR
в цели избегания сущностей. - Установка
checkNoActionTime
вfalse
вFishSwimGoal
для предотвращения застревания рыб на месте. - Уменьшение
schoolSize
у рыбы-лидера при гибели последователей.
Влияние на производительность
Мод не улучшает производительность игры; воздействие минимально, особенно для рыб. См. FishNoStuck#1
Установка
- Установите Fabric Loader или MinecraftForge
- Поместите мод в папку
mods
История создания
Во время работы над Fish of Thieves при анализе FollowFlockLeaderGoal
и его адаптации для системы Brain
.
При отображении отладочных данных над сущностью:
Была обнаружена аномалия: рыба со значением schoolSize=8
имела свойство isFollower=true
и лидера, что противоречит логике. Это послужило началом разработки мода.