Skip to content

Temporizador de Despawn e Herança de Idade (MC 26.1.2)

Este documento detalha o ciclo de vida de despawn, conversão de ticks em segundos, regras de herança de idade mais recente e proteções para farms no Item Clumps para Minecraft 26.1.2.


📊 Ficha Técnica do Recurso

PropriedadeEspecificação
Nome do SistemaPreservador de Despawn por Idade Mais Jovem
Limiar de Despawn Vanilla$6.000\text{ ticks}$ ($300\text{ segundos} = 5.0\text{ minutos}$)
Regra de Herança de Idade$\text{age}_{\text{merged}} = \min(\text{age}_A, \text{age}_B)$ (O item mais jovem prevalece)
Regra de Atraso de Coleta$\text{pickupDelay}_{\text{merged}} = \max(\text{pickupDelay}_A, \text{pickupDelay}_B)$ (Maior atraso mantido)
Campo AlvoItemEntity.age e ItemEntity.pickupDelay

⏳ Matemática de Tempo de Ticks para Segundos

No Minecraft, temporizadores de entidades rodam 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}$$

No Minecraft Vanilla, uma entidade ItemEntity incrementa seu campo interno age em $+1$ a cada tick de jogo. Quando $\text{age} \ge 6000$, o item é descartado permanentemente do mundo.


🛡️ Regra de Proteção do Item Mais Jovem

Quando dois itens se fundem no Item Clumps, a entidade sobrevivente executa:

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

O fluxo contínuo de itens em farms ativas reinicia repetidamente a idade do agrupamento para 0. Enquanto a farm estiver gerando itens ativamente, nenhum item sofrerá despawn.

Assim que a farm para de produzir itens, o agrupamento permanece no chão e o temporizador de idade avança até 6000 ticks, limpando os itens após 5 minutos de inatividade.


💻 Implementação do Código-Fonte Java Real

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

🔗 Documentação Relacionada (MC 26.1.2)

Official documentation & web portal for Dasik Igaijinn mods.