Skip to content

Pembahasan Arsitektur & Mixin (MC 26.1.2)

Dokumen ini menjelaskan tata letak paket internal, hierarki kelas, rincian target Mixin, shadow member, dan titik injeksi untuk Item Clumps di Minecraft 26.1.2.


🌳 Hierarki Paket & Diagram Kelas

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]

🛠️ Target Mixin Lengkap & Analisis Titik Injeksi

1. ItemEntityMixin.java

  • Kelas Target: net.minecraft.world.entity.item.ItemEntity
  • Ekstensi Superclass: extends net.minecraft.world.entity.Entity
Anggota / MetodeAnotasiTitik InjeksiTujuan
getItem()@ShadowT/AMengakses tumpukan item.
setItem(ItemStack)@ShadowT/AMengubah tumpukan item dan memperbarui data pelacak.
target@ShadowT/AUUID pemain target.
pickupDelay@ShadowT/ATick timer cooldown pengambilan.
age@ShadowT/ATick timer usia despawn ($0$ hingga $6000$).
tick@Inject@At("HEAD")Memperbarui visibilitas label nama kustom secara dinamis.
setItem@Inject@At("TAIL")Memicu pembaruan label nama saat tumpukan berubah.
isMergable@Inject@At("HEAD"), cancellable = trueMenimpa pemeriksaan tumpukan maks dengan GameRule max_clump_size.
mergeWithNeighbours@ModifyArgsINVOKE -> AABB.inflate(DDD)Memodifikasi argumen pelebaran horisontal ($0$ dan $2$) agar sesuai merge_radius.
tryToMerge@Inject@At("HEAD"), cancellable = trueMenjalankan matematika penggabungan dan pewarisan usia termuda.
playerTouch@Inject@At("HEAD"), cancellable = trueMemasukkan item ke inventaris secara bertahap dalam tumpukan vanilla yang rapi.

2. HopperBlockEntityMixin.java

  • Kelas Target: net.minecraft.world.level.block.entity.HopperBlockEntity
MetodeAnotasiTitik InjeksiTujuan
addItem(Container, ItemEntity)@Inject@At("HEAD"), cancellable = trueMengambil irisan 1-item dari mega-clump ($2,5$ item/detik) ke dalam wadah corong.

🔗 Dokumentasi Terkait (MC 26.1.2)

Official documentation & web portal for Dasik Igaijinn mods.