Skip to content

Penghitung Waktu Despawn & Pewarisan Usia (MC 26.1.2)

Dokumen ini menjelaskan siklus hidup despawn, matematika konversi tick-ke-detik, aturan pewarisan usia termuda, dan perlindungan produksi farm di Item Clumps untuk Minecraft 26.1.2.


📊 Kotak Info Fitur

PropertiSpesifikasi
Nama SistemPelindung Despawn Usia Termuda
Batas Despawn Vanilla$6.000\text{ tick}$ ($300\text{ detik} = 5,0\text{ menit}$)
Aturan Pewarisan Usia$\text{age}_{\text{merged}} = \min(\text{age}_A, \text{age}_B)$ (Item termuda yang berlaku)
Aturan Jeda Pengambilan$\text{pickupDelay}_{\text{merged}} = \max(\text{pickupDelay}_A, \text{pickupDelay}_B)$ (Jeda terlama dipertahankan)
Bidang TargetItemEntity.age dan ItemEntity.pickupDelay

⏳ Perhitungan Waktu Tick-ke-Detik

Dalam Minecraft, penghitung waktu entitas berjalan pada 20 tick per detik:

$$1\text{ second} = 20\text{ ticks}$$ $$1\text{ minute} = 60\text{ seconds} = 1,200\text{ ticks}$$ $$5\text{ minutes} = 300\text{ seconds} = 6,000\text{ ticks}$$

Dalam vanilla Minecraft, sebuah ItemEntity menambahkan nilai field age internalnya sebesar $+1$ setiap game tick. Saat $\text{age} \ge 6000$, item dihapus secara permanen dari dunia.


🛡️ Aturan Perlindungan Item Termuda

Saat dua item bergabung di Item Clumps, entitas yang bertahan mengeksekusi:

$$\text{age}{\text{merged}} = \min(\text{age}{\text{this}}, \text{age}_{\text{other}})$$

Aliran item yang terus mengalir di mob grinder atau farm otomatis selalu mengatur ulang umur tumpukan menjadi 0. Selama farm aktif, item tidak akan pernah despawn.

Setelah farm berhenti, kelompok item terdiam di tanah dan penghitung usia berjalan menuju 6000 tick, membersihkan item secara aman setelah 5 menit.


💻 Implementasi Kode Sumber Java Asli

Dari ItemEntityMixin.java di Minecraft 26.1.2:

java
// Complete Merge: larger stack absorbs the smaller stack
if (otherCount < thisCount) {
    thisStack.setCount(thisCount + otherCount);
    this.setItem(thisStack);
    this.pickupDelay = Math.max(this.pickupDelay, ((ItemEntityMixin)(Object)other).pickupDelay);
    this.age = Math.min(this.age, ((ItemEntityMixin)(Object)other).age);
    other.discard();
} else {
    otherStack.setCount(thisCount + otherCount);
    other.setItem(otherStack);
    ((ItemEntityMixin)(Object)other).pickupDelay = Math.max(((ItemEntityMixin)(Object)other).pickupDelay, this.pickupDelay);
    ((ItemEntityMixin)(Object)other).age = Math.min(((ItemEntityMixin)(Object)other).age, this.age);
    this.discard();
}

🔗 Dokumentasi Terkait (MC 26.1.2)

Official documentation & web portal for Dasik Igaijinn mods.