🐑 Стазис мобов и Биологическое старение ферм
📌 Отказ от ответственности за исходный код: Документация в этой Вики отражает текущее состояние исходного кода в репозитории, которое может включать недавние невыпущенные коммиты или разрабатываемые функции до публичных релизов на CurseForge и Modrinth.
🛡️ Стазис мобов (Заморозка AI)
Во время сверхбыстрой деформации времени быстро перемещающиеся враги (зомби, скелеты, криперы) могли бы заполонить базу или атаковать спящих игроков до того, как те успеют среагировать.
True Sleep вводит Стазис мобов (Mob Stasis): Когда включено правило truesleep:freeze_mobs (по умолчанию: ВКЛ), навигация AI, поиск путей и атака мобов приостанавливаются на время сна.
Исключение для мирных тружеников
Жители и тихони (Allay) объединены тегом #truesleep:worker_mobs. По умолчанию правило truesleep:freeze_workers установлено в ВЫКЛ (false), позволяя жителям без помех расходиться по кроватям и рабочим местам на закате.
🌾 Биологическое старение ферм
Даже когда перемещение мобов заблокировано, их внутренние биологические часы продолжают работать через BiologicalStasisHelper:
1. Взросление детенышей и перезарядка размножения
Телята, ягнята, поросята, цыплята и волчата взрослеют во время сна:
if (mob instanceof AgeableMob ageable) {
int currentAge = ageable.getAge();
if (ageable.canAgeUp()) {
ageable.setAge(Math.min(0, currentAge + strideTicks));
} else if (currentAge > 0) {
ageable.setAge(Math.max(0, currentAge - strideTicks));
}
}2. Таймеры откладывания яиц курами
Таймер откладывания яиц уменьшается на strideTicks, обеспечивая непрерывную работу ферм яиц ночью: $$\text{eggTime} = \max(1, \text{eggTime} - \text{strideTicks})$$
3. Восстановление шерсти овец (симуляция поедания травы)
Стриженым овцам требуется щипать траву для отрастания шерсти. В стазисе True Sleep имитирует это математически:
$$\text{grazeChance} = \min\left(1.0, \frac{\text{strideTicks}}{1000.0}\right)$$
Если стриженая овца стоит на блоке minecraft:grass_block, у нее есть вероятность $\text{grazeChance}$ за шаг превратить его в minecraft:dirt и восстановить шерсть (sheep.setSheared(false)).
🧪 Прогресс эффектов зелий
Активные эффекты зелий на всех существах корректно истекают во время сна:
- Длительность положительных (Сила, Регенерация) и отрицательных (Отравление, Иссушение) эффектов уменьшается на
strideTicks. - True Sleep использует утиную типизацию (
MobEffectInstanceExtensions), предотвращая зависания при обновлении каскадных скрытых эффектов.
🎛️ Управляющие игровые правила (GameRules)
truesleep:freeze_mobs(По умолчанию:true): Приостанавливает перемещение мобов.truesleep:freeze_workers(По умолчанию:false): Приостанавливает жителей и тихонь.truesleep:biological_aging(По умолчанию:true): Включает взросление детенышей, таймеры яиц и отрастание шерсти.truesleep:unfreeze_<namespace>_<path>: Индивидуальное правило разморозки для любого типа сущности.
