🥖 수면 배고픔 소모 및 수중 익사 면역
📌 저장소 소스 코드 고지 사항: 이 위키의 문서는 CurseForge 및 Modrinth의 공개 릴리스 빌드에 앞서 최근 릴리스되지 않은 커밋 또는 개발 기능을 포함할 수 있는 저장소의 현재 소스 코드 상태를 반영합니다.
🥐 수면 배고픔 소모 메커니즘
실제 생활에서도 밤새 잠을 자면 칼로리가 소모됩니다. 마인크래프트에서 아침에 일어났을 때 아침 식사를 찾게 되는 것은 몰입감을 극대화합니다.
truesleep:sleep_hunger 규칙이 활성화되면(기본값: ON), 수면 중인 플레이어는 타임 워프 동안 미세하고 균형 잡힌 탈진(Exhaustion) 소모를 겪습니다.
📐 탈진 및 배고픔 소모 공식
$$\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개)**에 도달하면 배고픔 소모가 즉시 정지됩니다:
java
if (player.getFoodData().getFoodLevel() <= 6) return;🫧 폐 정지 호흡 보호 (수중 익사 면역)
바닐라 마인크래프트에서는 물속에 침대를 놓거나 자는 동안 물에 잠기면 산소가 급속 고갈되어 질식 피해를 입고 침대에서 강제로 튕겨 나옵니다.
truesleep:drown_immunity가 활성화되면(기본값: ON), True Sleep은 **폐 정지 호흡 보호(Pulmonary Stasis)**를 작동시킵니다:
- 수면 중인 플레이어에 대한
Entity.baseTick()을 정확히 가로챕니다. - 산소 공급량을 최대치인
getMaxAirSupply()($300\text{ 틱}$)로 일정하게 가득 채웁니다. - 플레이어는 익사 위험 없이 아름다운 해저 기지에서 편안한 낮잠을 즐길 수 있습니다!
java
if (serverLevel.getGameRules().get(TrueSleepRules.DROWN_IMMUNITY)) {
this.setAirSupply(this.getMaxAirSupply());
}🎛️ 제어 게임 규칙 (GameRules)
| 게임 규칙 | 유형 | 기본값 | 설명 |
|---|---|---|---|
truesleep:sleep_hunger | Boolean | true | 수면 중 자연스러운 배고픔 소모(하한선 6포인트). |
truesleep:drown_immunity | Boolean | true | 수중 수면 중 익사 피해 방지. |
