Skip to content

Desglose de arquitectura y Mixins (MC 26.1.2)

Este documento detalla el diseño interno de paquetes, la jerarquía de clases, el desglose de objetivos Mixin, miembros shadow y puntos de inyección para Item Clumps en Minecraft 26.1.2.


🌳 Jerarquía de paquetes y diagrama de clases

net.instantgratification.item_clumps

├── ItemClumpsFabric.java                   [Main Entrypoint / GameRules Registration]

├── config/
│   ├── ItemClumpsConfig.java               [Configuration POJO / Gson Persistence]
│   ├── ModMenuIntegration.java             [ModMenuApi Provider / Cloth Config Factory]
│   └── ClothConfigScreenHelper.java        [Cloth Config v2 Screen Factory]

└── mixin/
    ├── HopperBlockEntityMixin.java         [Hopper Drip Extraction Mixin]
    └── ItemEntityMixin.java                [Mega-Stack Aggregation & Smart Pickup Mixin]

🛠️ Objetivos completos de Mixin y desglose de inyecciones

1. ItemEntityMixin.java

  • Clase objetivo: net.minecraft.world.entity.item.ItemEntity
  • Extensión de superclase: extends net.minecraft.world.entity.Entity
Miembro / MétodoAnotaciónPunto de inyecciónPropósito
getItem()@ShadowN/AAccede a la pila de objetos.
setItem(ItemStack)@ShadowN/AModifica la pila de objetos y actualiza los datos del rastreador.
target@ShadowN/AUUID del jugador objetivo.
pickupDelay@ShadowN/ATicks del temporizador de enfriamiento de recogida.
age@ShadowN/ATicks del temporizador de desaparición ($0\text{ a }6000$).
tick@Inject@At("HEAD")Actualiza la visibilidad de la etiqueta de nombre de forma dinámica.
setItem@Inject@At("TAIL")Activa la actualización de la etiqueta de nombre cuando cambia la pila.
isMergable@Inject@At("HEAD"), cancellable = trueAnula la verificación de stack máximo con la GameRule max_clump_size.
mergeWithNeighbours@ModifyArgsINVOKE -> AABB.inflate(DDD)Modifica argumentos de inflado horizontal ($0$ y $2$) para coincidir con merge_radius.
tryToMerge@Inject@At("HEAD"), cancellable = trueEjecuta cálculo de fusión y herencia de edad más reciente.
playerTouch@Inject@At("HEAD"), cancellable = trueDespacha la absorción de inventario en fragmentos en pilas vanilla limpias.

2. HopperBlockEntityMixin.java

  • Clase objetivo: net.minecraft.world.level.block.entity.HopperBlockEntity
MétodoAnotaciónPunto de inyecciónPropósito
addItem(Container, ItemEntity)@Inject@At("HEAD"), cancellable = trueExtrae porciones de 1 objeto de mega-grupos ($2.5\text{ objetos/s}$) a contenedores de tolva.

🔗 Documentación relacionada (MC 26.1.2)

Official documentation & web portal for Dasik Igaijinn mods.