🐑 Stasis Mob & Penuaan Biologis Peternakan
📌 Pemberitahuan Sumber Repositori: Dokumentasi dalam Wiki ini mencerminkan kondisi kode sumber terkini dalam repositori, yang mungkin mencakup komit terbaru yang belum dirilis atau fitur dalam pengembangan sebelum rilis publik di CurseForge dan Modrinth.
🛡️ Mekanisme Stasis Mob (Pembekuan AI)
Selama percepatan waktu hipercepat, mob bermusuhan yang bergerak cepat (Zombie, Skeleton, Creeper) dapat membanjiri markas atau menyerang pemain yang tertidur sebelum sempat bereaksi.
True Sleep menghadirkan Stasis Mob (Mob Stasis): Saat truesleep:freeze_mobs diaktifkan (default: ON), navigasi AI, pencarian jalan, dan target serangan mob dijeda selama tidur.
Pengecualian untuk Mob Pekerja
Penduduk desa (Villager) dan Allay dikelompokkan dalam tag #truesleep:worker_mobs. Secara default, truesleep:freeze_workers disetel ke OFF (false), memungkinkan penduduk desa berjalan santai menuju tempat tidur atau stasiun kerja saat senja.
🌾 Penuaan Biologis Peternakan
Meskipun pergerakan mob dijeda, jam biologis internal mereka terus berdetak via BiologicalStasisHelper:
1. Pertumbuhan Bayi Hewan & Cooldown Pembiakan
Bayi sapi, domba, babi, ayam, dan serigala bertumbuh dewasa selama tidur:
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. Timer Pengeluaran Telur Ayam
Timer telur ayam berkurang sebesar strideTicks, memungkinkan peternakan pengumpul telur beroperasi lancar semalaman: $$\text{eggTime} = \max(1, \text{eggTime} - \text{strideTicks})$$
3. Pertumbuhan Ulang Wol Domba (Simulasi Merumput)
Domba yang dicukur membutuhkan animasi memakan rumput untuk menumbuhkan kembali wolnya. Dalam stasis, True Sleep mensimulasikannya secara matematis:
$$\text{grazeChance} = \min\left(1.0, \frac{\text{strideTicks}}{1000.0}\right)$$
Jika domba yang telah dicukur berdiri di atas minecraft:grass_block, terdapat peluang $\text{grazeChance}$ per langkah untuk mengubah blok menjadi minecraft:dirt dan mengembalikan mantel wolnya (sheep.setSheared(false)).
🧪 Progresi Efek Ramuan
Efek ramuan aktif pada semua makhluk hidup berkurang durasinya dengan tepat selama tidur:
- Efek positif (Kekuatan, Regenerasi) dan efek negatif (Racun, Wither) durasinya berkurang sebesar
strideTicks. - True Sleep menggunakan duck typing (
MobEffectInstanceExtensions) agar efek tersembunyi berjenjang kedaluwarsa tanpa bug rekursi.
🎛️ Aturan GameRules Pengendali
truesleep:freeze_mobs(Default:true): Menjeda pergerakan mob bermusuhan dan sekitar.truesleep:freeze_workers(Default:false): Menjeda pergerakan penduduk desa dan allay.truesleep:biological_aging(Default:true): Mengaktifkan pertumbuhan bayi, timer telur, dan wol.truesleep:unfreeze_<namespace>_<path>: Tombol unfreeze tersendiri untuk setiap tipe entitas.
