🐑 몹 정지 및 생물학적 농장 성장 시뮬레이션
📌 저장소 소스 코드 고지 사항: 이 위키의 문서는 CurseForge 및 Modrinth의 공개 릴리스 빌드에 앞서 최근 릴리스되지 않은 커밋 또는 개발 기능을 포함할 수 있는 저장소의 현재 소스 코드 상태를 반영합니다.
🛡️ 몹 정지 (AI 동결) 메커니즘
초고속 타임 워프 도중 빠르게 움직이는 적대적 몹(좀비, 스켈레톤, 크리퍼 등)이 수면 중인 플레이어나 기지를 기습할 수 있습니다.
True Sleep은 몹 정지(Mob Stasis) 메커니즘을 제공합니다: truesleep:freeze_mobs가 활성화되면(기본값: ON), 수면 중 몹의 이동 AI, 경로 탐색 및 공격 목표 설정이 안전하게 정지됩니다.
일꾼 몹 면제 설정
주민(Villager)과 알레이(Allay)는 #truesleep:worker_mobs 태그로 분류됩니다. 기본적으로 truesleep:freeze_workers는 OFF(false)로 설정되어 주민들이 일몰 시 침대나 직업 블록으로 부드럽게 이동할 수 있습니다.
🌾 농장 동물 생물학적 자연 성장
몹의 이동 AI가 정지되어 있어도 내부 생물학적 시계는 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>: 특정 엔티티 유형에 대한 개별 정지 해제 규칙.
