🥖 Расход сытости во сне и Иммунитет к утоплению
📌 Отказ от ответственности за исходный код: Документация в этой Вики отражает текущее состояние исходного кода в репозитории, которое может включать недавние невыпущенные коммиты или разрабатываемые функции до публичных релизов на CurseForge и Modrinth.
🥐 Механика расхода сытости во сне
В реальной жизни сон тоже сжигает калории, и пробуждение в Minecraft с легким голодом выглядит очень органично.
Когда включено правило truesleep:sleep_hunger (по умолчанию: ВКЛ), спящие игроки испытывают легкое, сбалансированное истощение во время ускорения времени.
📐 Формула истощения голода
$$\text{exhaustion} = \text{strideTicks} \times 0.0008\text{ единиц истощения}$$
- За стандартную ночь в $10{,}000\text{ тиков}$ ($12542 \to 24000$) суммарное истощение составит: $$\text{Итоговое истощение} = 10000 \times 0.0008 = 8.0\text{ очков} = 2.0\text{ единицы голода (1 окорочок)}$$
- За полный цикл в $12{,}000\text{ тиков}$ игрок потратит всего $3.0\text{ – }4.0\text{ единицы голода}$.
🛡️ Безопасный порог против голодной смерти
True Sleep НИКОГДА не доведет спящего игрока до голодной смерти. Расход сытости автоматически останавливается, когда уровень голода падает до 6 единиц (3 окорочка):
if (player.getFoodData().getFoodLevel() <= 6) return;🫧 Легочный стазис (Иммунитет к утоплению)
В ванильном Minecraft сон под водой приводит к быстрой потере воздуха, получению урона и принудительному выбросу из кровати.
Когда включено правило truesleep:drown_immunity (по умолчанию: ВКЛ), True Sleep активирует Легочный стазис (Pulmonary Stasis):
- Перехватывает
Entity.baseTick()для спящих игроков. - Непрерывно восполняет запас воздуха до максимума
getMaxAirSupply()($300\text{ тиков}$). - Позволяет игрокам спокойно отдыхать на подводных базах, любуясь морскими глубинами без риска утонуть!
if (serverLevel.getGameRules().get(TrueSleepRules.DROWN_IMMUNITY)) {
this.setAirSupply(this.getMaxAirSupply());
}🎛️ Управляющие игровые правила (GameRules)
| Игровое правило | Тип | По умолчанию | Описание |
|---|---|---|---|
truesleep:sleep_hunger | Boolean | true | Симулирует расход сытости во сне до порога в 6 единиц. |
truesleep:drown_immunity | Boolean | true | Предотвращает утопление при отдыхе под водой. |
