Compatibilité & Intégrations Inter-Mods (MC 26.2)
Ce document détaille les intégrations de mods tiers, protections par réflexion dynamique, alignement avec Stack Size Adjuster et compatibilité d'usines dans Item Clumps pour Minecraft 26.2.
📊 Fiche Technique de Fonctionnalité
| Intégration | Type | Statut de Compatibilité | Mécanisme Utilisé |
|---|---|---|---|
| Magnet (« Let me get that! ») | Optionnel | 🟢 100 % Transparent | Vérification par réflexion dynamique (ig_magnet$isMagnetized / ig$isMagnetized) |
| Stack Size Adjuster | Optionnel | 🟢 Synchronisation Dynamique | Délègue l'enregistrement de max_clump_size à getMaxStackSize() |
| YetAnotherConfigLib (YACL v3) | GUI Optionnelle | 🟢 Supporté | Chargement différé via GuiHelper.getOptionalYaclFactory |
| ModMenu | GUI Optionnelle | 🟢 Supporté | Intégration du point d'entrée ModMenu |
| Automatisation Vanilla / Redstone | Cœur | 🟢 100 % Parité | Extraction à 1 item et préservation de l'âge le plus jeune |
🧲 1. Protection en Vol pour Mods d'Aimants
Lors de l'utilisation de mods d'aimant ou d'aspiration (comme Magnet: Let me get that!), les items au sol s'envolent selon des trajectoires 3D vers le joueur.
┌───────────────────────────────────────────────────────────┐
│ Item In-Flight Magnet Trajectory │
│ │
│ [Item A (In-Flight)] --------> [Player] │
│ │ │
│ (Passes close to Item B on ground) │
│ │ │
│ ❌ WITHOUT MAGNET CHECK: │
│ Item A merges with B; flight velocity resets; │
│ Item snaps to ground. │
│ │
│ ✅ WITH ITEM CLUMPS MAGNET CHECK: │
│ Merge paused while in-flight; │
│ Smooth curve preserved straight to player! │
└───────────────────────────────────────────────────────────┘Item Clumps vérifie l'état d'attraction via réflexion sans dépendance rigide à la compilation :
java
if (net.fabricmc.loader.api.FabricLoader.getInstance().isModLoaded("magnet")) {
try {
java.lang.reflect.Method isMagnetizedMethod;
try {
isMagnetizedMethod = this.getClass().getMethod("ig_magnet$isMagnetized");
} catch (NoSuchMethodException e) {
isMagnetizedMethod = this.getClass().getMethod("ig$isMagnetized");
}
if ((boolean) isMagnetizedMethod.invoke(this) || (boolean) isMagnetizedMethod.invoke(other)) {
ci.cancel();
return;
}
} catch (Throwable ignored) {}
}📦 2. Alignement Dynamique avec Stack Size Adjuster
Lorsque Stack Size Adjuster est installé aux côtés d'Item Clumps :
- Dédoublonnage de GameRules : Item Clumps désactive automatiquement l'enregistrement de
item_clumps:max_clump_sizeet son widget YACL. - Synchronisation Unifiée des Limites : Les limites de fusion au sol consultent automatiquement
itemStack.getMaxStackSize(), permettant à Stack Size Adjuster de fixer les plafonds au sol globalement ou par item.
java
int maxClump;
if (net.fabricmc.loader.api.FabricLoader.getInstance().isModLoaded("stack-size-adjuster") ||
ItemClumpsFabric.MAX_CLUMP_SIZE == null) {
maxClump = thisStack.getMaxStackSize();
} else {
maxClump = DynamicGameRuleManager.getInt(this.level(), ItemClumpsFabric.MAX_CLUMP_SIZE);
}