Compatibilidad e integraciones con otros mods (MC 26.2)
Este documento detalla las integraciones con mods de terceros, salvaguardas de reflexión dinámica, alineación con Stack Size Adjuster y compatibilidad con granjas en Item Clumps para Minecraft 26.2.
📊 Ficha técnica de características
| Integración | Tipo | Estado de compatibilidad | Mecanismo de manejo |
|---|---|---|---|
| Magnet ("Let me get that!") | Opcional | 🟢 100% Fluido | Comprobación de reflexión dinámica (ig_magnet$isMagnetized / ig$isMagnetized) |
| Stack Size Adjuster | Opcional | 🟢 Sincronización de límite dinámica | Cede el registro de max_clump_size a getMaxStackSize() |
| YetAnotherConfigLib (YACL v3) | GUI opcional | 🟢 Compatible | Carga de clases diferida mediante GuiHelper.getOptionalYaclFactory |
| ModMenu | GUI opcional | 🟢 Compatible | Integración de punto de entrada de ModMenu |
| Automatización Vanilla / Redstone | Núcleo | 🟢 100% Paridad | Extracción por goteo de 1 objeto en tolvas y herencia de edad más reciente |
🧲 1. Protección en vuelo para mods de imán
Al usar mods de imán o aspiración de objetos (como Magnet: Let me get that!), los objetos en el suelo se elevan en trayectorias de vuelo 3D dirigiéndose hacia el jugador.
┌───────────────────────────────────────────────────────────┐
│ 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 consulta el estado del imán a través de reflexión sin dependencias fijas en tiempo de compilación:
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. Alineación dinámica con Stack Size Adjuster
Cuando Stack Size Adjuster está instalado junto con Item Clumps:
- Deduplicación de GameRules: Item Clumps suprime automáticamente el registro de
item_clumps:max_clump_sizey su control en la configuración de YACL. - Sincronización unificada de límites: Los límites de fusión en el suelo consultan automáticamente
itemStack.getMaxStackSize(), permitiendo que Stack Size Adjuster dicte los límites máximos de forma global o por objeto.
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);
}