Minuteur de Disparition & Héritage d'Âge (MC 26.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.2.
📊 Fiche Technique de Fonctionnalité
| Propriété | Spécification |
|---|---|
| Nom du Système | Pré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és | ItemEntity.age et ItemEntity.pickupDelay |
| Comportement en Inactivité | Minuteur standard de 5 minutes décompté en l'absence de nouvelle fusion |
⏳ 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}})$$
Existing Ground Clump Newly Dropped Item
- Count: 500 Cobblestone - Count: 1 Cobblestone
- Age: 5,800 ticks (4m 50s old) - Age: 0 ticks (Brand new)
│ │
└──────────────────────┬───────────────────────┘
│ (Item Clumps Merging)
▼
Merged Mega-Stack Entity
- Count: 501 Cobblestone
- Age: min(5800, 0) = 0 ticks (Fresh 5-minute timer)Pourquoi Cela Protège les Usines à Haut Rendement
- Le Problème de Durée de Vie en Vanilla : En vanilla, si un système de collecte est lent, de nouveaux items fusionnant avec d'anciens items peuvent disparaître 10 secondes plus tard si l'item hôte avait déjà 4 minutes et 50 secondes.
- La Solution d'Item Clumps : Le flux continu d'items dans les usines à monstres actives, fermes d'arbres ou carrières réinitialise en permanence l'âge de l'amas à
0. Tant que l'usine produit, aucun item ne disparaîtra jamais. - Nettoyage en Cas d'Inactivité : Dès que l'usine cesse de produire, l'amas reste immobile au sol. Le minuteur progresse de $0$ à $6000$, supprimant en toute sécurité les items délaissés après 5 minutes pour éviter d'alourdir la sauvegarde du monde.
🛑 Sécurité du Délai de Ramassage
Pour empêcher les joueurs de réabsorber instantanément un item jeté de leur main, Minecraft lui attribue un pickupDelay (généralement 40 ticks = 2 secondes).
Lorsque des items fusionnent :
$$\text{pickupDelay}{\text{merged}} = \max(\text{pickupDelay}{\text{this}}, \text{pickupDelay}_{\text{other}})$$
Cela garantit que si un joueur jette un item sur un amas existant, l'amas n'est pas immédiatement réaspiré dans son inventaire avant la fin du délai de ramassage.
💻 Implémentation du Code Source Java Réel
Depuis ItemEntityMixin.java dans Minecraft 26.2 :
// During Complete or Partial Merging:
this.pickupDelay = Math.max(this.pickupDelay, ((ItemEntityMixin)(Object)other).pickupDelay);
this.age = Math.min(this.age, ((ItemEntityMixin)(Object)other).age);