🥖 Fome ao Dormir e Imunidade a Afogamento
📌 Aviso Legal do Código-Fonte do Repositório: A documentação nesta Wiki reflete o estado atual do código-fonte no repositório, que pode incluir commits recentes não lançados ou recursos em desenvolvimento antes dos lançamentos públicos no CurseForge e Modrinth.
🥐 Mecânica de Dreno de Fome ao Dormir
Na vida real, dormir gasta calorias; acordar no Minecraft pronto para tomar café da manhã acrescenta uma ótima dose de imersão.
Com truesleep:sleep_hunger ativado (padrão: ON), os jogadores passam por um dreno de exaustão leve e balanceado.
📐 Equação de Exaustão de Alimento
$$\text{exhaustion} = \text{strideTicks} \times 0.0008\text{ pontos de exaustão}$$
- Em uma noite padrão de $10{,}000\text{ ticks}$ ($12542 \to 24000$), a exaustão total é: $$\text{Exaustão Total} = 10000 \times 0.0008 = 8.0\text{ pontos} = 2.0\text{ pontos de fome (1 coxa)}$$
- Se dormir por um ciclo de $12{,}000\text{ ticks}$, você gastará entre $3.0\text{ e }4.0\text{ pontos de fome}$.
🛡️ Piso de Segurança Contra Inanição
O True Sleep NUNCA deixará um jogador morrer de fome dormindo. O consumo para automaticamente quando o nível de fome atinge 6 pontos (3 coxas):
if (player.getFoodData().getFoodLevel() <= 6) return;🫧 Estase Pulmonar (Imunidade a Afogamento)
No Minecraft vanilla, deitar em uma cama submersa esgota o oxigênio rapidamente, provocando dano e ejetando o jogador.
Com truesleep:drown_immunity ativo (padrão: ON), o True Sleep aciona a Estase Pulmonar:
- Intercepta o método
Entity.baseTick()de jogadores dormindo. - Restaura continuamente o suprimento de ar para
getMaxAirSupply()($300\text{ ticks}$). - Permite cochilar tranquilamente em bases submarinas panorâmicas sem se afogar!
if (serverLevel.getGameRules().get(TrueSleepRules.DROWN_IMMUNITY)) {
this.setAirSupply(this.getMaxAirSupply());
}🎛️ Regras de Jogo Reguladoras (GameRules)
| GameRule | Tipo | Padrão | Descrição |
|---|---|---|---|
truesleep:sleep_hunger | Boolean | true | Simula o gasto de comida até o limite mínimo de 6 pontos. |
truesleep:drown_immunity | Boolean | true | Impede o dano de afogamento ao repousar sob a água. |
