Skip to content

Minuteur de Disparition & Héritage d'Âge (MC 26.1.2)

Ce document détaille le cycle de vie de disparition, conversion des ticks en secondes, règles d'héritage d'âge récent et sécurité des usines dans Item Clumps pour Minecraft 26.1.2.


📊 Fiche Technique de Fonctionnalité

PropriétéSpécification
Nom du SystèmePréservateur de Disparition par l'Âge le Plus Récent
Seuil de Disparition Vanilla$6,000\text{ ticks}$ ($300\text{ secondes} = 5.0\text{ minutes}$)
Règle d'Héritage d'Âge$\text{age}_{\text{merged}} = \min(\text{age}_A, \text{age}_B)$ (L'item le plus récent l'emporte)
Délai de Ramassage$\text{pickupDelay}_{\text{merged}} = \max(\text{pickupDelay}_A, \text{pickupDelay}_B)$ (Plus long délai conservé)
Champs CiblésItemEntity.age et ItemEntity.pickupDelay

⏳ Calcul Temporel : Ticks vers Secondes

Dans Minecraft, les minuteurs d'entités s'exécutent à 20 ticks par seconde :

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

Dans Minecraft Vanilla, une entité ItemEntity incrémente son champ age de $+1$ à chaque tick. Lorsque $\text{age} \ge 6000$, l'item est définitivement supprimé du monde.


🛡️ Règle de Préservation de l'Item le Plus Récent

Lorsque deux items fusionnent dans Item Clumps, l'entité survivante exécute :

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

Le flux continu d'items dans les fermes actives réinitialise continuellement l'âge de l'amas à 0. Tant que la ferme produit, aucun item ne disparaît.

Dès que la production s'arrête, l'amas reste au sol et le compteur atteint 6000 ticks, supprimant sans risque les items non ramassés après 5 minutes.


💻 Implémentation du Code Source Java Réel

Depuis ItemEntityMixin.java dans 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();
}

🔗 Documentation Associée (MC 26.1.2)

Official documentation & web portal for Dasik Igaijinn mods.