Skip to content

Detalhamento de Arquitetura e Mixins (MC 26.1.2)

Este documento detalha a estrutura interna de pacotes, hierarquia de classes, alvos de Mixin, membros shadow e pontos de injeção para o Item Clumps no Minecraft 26.1.2.


🌳 Hierarquia de Pacotes e Diagrama de Classes

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]

🛠️ Alvos Completos de Mixin e Detalhamento de Injeções

1. ItemEntityMixin.java

  • Classe Alvo: net.minecraft.world.entity.item.ItemEntity
  • Extensão de Superclasse: extends net.minecraft.world.entity.Entity
Membro / MétodoAnotaçãoPonto de InjeçãoFinalidade
getItem()@ShadowN/DAcessa a pilha de itens.
setItem(ItemStack)@ShadowN/DAltera a pilha de itens e atualiza os dados do rastreador.
target@ShadowN/DUUID do jogador alvo.
pickupDelay@ShadowN/DTicks do temporizador de atraso de coleta.
age@ShadowN/DTicks do temporizador de idade de despawn ($0\text{ a }6000$).
tick@Inject@At("HEAD")Atualiza dinamicamente a visibilidade da etiqueta de nome.
setItem@Inject@At("TAIL")Aciona a atualização da etiqueta quando a pilha muda.
isMergable@Inject@At("HEAD"), cancellable = trueSubstitui verificação de pilha máxima pela GameRule max_clump_size.
mergeWithNeighbours@ModifyArgsINVOKE -> AABB.inflate(DDD)Modifica argumentos de expansão horizontal ($0$ e $2$) para coincidir com merge_radius.
tryToMerge@Inject@At("HEAD"), cancellable = trueExecuta cálculo de fusão e herança da idade mais jovem.
playerTouch@Inject@At("HEAD"), cancellable = trueDespacha entrada no inventário em lotes em pilhas vanilla limpas.

2. HopperBlockEntityMixin.java

  • Classe Alvo: net.minecraft.world.level.block.entity.HopperBlockEntity
MétodoAnotaçãoPonto de InjeçãoFinalidade
addItem(Container, ItemEntity)@Inject@At("HEAD"), cancellable = trueExtrai fatias de 1 item de mega-agrupamentos ($2.5\text{ itens/s}$) para funis.

🔗 Documentação Relacionada (MC 26.1.2)

Official documentation & web portal for Dasik Igaijinn mods.