Skip to content

Temporizador de desaparición y herencia de edad (MC 26.1.2)

Este documento detalla el ciclo de vida de desaparición, el cálculo de conversión de ticks a segundos, las reglas de herencia de edad más reciente y salvaguardas para granjas en Item Clumps para Minecraft 26.1.2.


📊 Ficha técnica de características

PropiedadEspecificación
Nombre del sistemaPreservador de desaparición por edad más reciente
Umbral de desaparición Vanilla$6,000\text{ ticks}$ ($300\text{ segundos} = 5.0\text{ minutos}$)
Regla de herencia de edad$\text{age}_{\text{merged}} = \min(\text{age}_A, \text{age}_B)$ (El objeto más reciente prevalece)
Regla de retardo de recogida$\text{pickupDelay}_{\text{merged}} = \max(\text{pickupDelay}_A, \text{pickupDelay}_B)$ (Se conserva el retardo mayor)
Campo objetivoItemEntity.age e ItemEntity.pickupDelay

⏳ Cálculo de tiempo de Ticks a Segundos

En Minecraft, los temporizadores de entidades funcionan a 20 ticks por segundo:

$$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}$$

En Minecraft Vanilla, una entidad ItemEntity incrementa su campo interno age en $+1$ cada tick del juego. Cuando $\text{age} \ge 6000$, el objeto se elimina permanentemente del mundo.


🛡️ Regla de salvaguarda del objeto más reciente

Cuando dos objetos se fusionan en Item Clumps, la entidad superviviente ejecuta:

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

El flujo continuo de objetos en granjas activas reinicia repetidamente la edad del grupo a 0. Mientras la granja genere objetos activamente, ningún objeto desaparecerá jamás.

Una vez que la granja deja de producir objetos, el grupo permanece en el suelo y el temporizador avanza hasta 6000 ticks, limpiando de forma segura los objetos tras 5 minutos.


💻 Implementación del código fuente Java real

De ItemEntityMixin.java en 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();
}

🔗 Documentación relacionada (MC 26.1.2)

Official documentation & web portal for Dasik Igaijinn mods.