Skip to content

Modifikasi Loot Genetika ​

KomponenKelas
Antarmuka Modifiernet.dasik.social.api.genetics.GeneticsLootModifier
Kelas Registrinet.dasik.social.api.genetics.GeneticsLootRegistry
Kelas Kait Mixinnet.dasik.social.mixin.LivingEntityLootMixin
Metode TargetLivingEntity.dropFromLootTable

🥩 Gambaran Umum & Intersepsi Loot ​

GeneticsLootRegistry memungkinkan mod untuk menyesuaikan barang jarahan (loot) saat entitas mati secara dinamis berdasarkan ciri genetiknya (hewan raksasa menjatuhkan lebih banyak daging, hewan kerdil menjatuhkan lebih sedikit hasil, bentuk mutasi menjatuhkan item langka).

ascii
[ LivingEntity.dropFromLootTable ]
                │
                ▼
 ┌─────────────────────────────┐
 │    LivingEntityLootMixin    │  ◄── @ModifyVariable Consumer Hook
 └──────────────┬──────────────┘
                │
                ▼
 ┌─────────────────────────────┐
 │    GeneticsLootRegistry     │  ◄── Lookup Modifier for EntityType
 └──────────────┬──────────────┘
                │
                ▼
 ┌─────────────────────────────┐
 │    GeneticsLootModifier     │  ◄── Scale stack count / Swap item
 └─────────────────────────────┘

💻 Contoh Kode Pengembang ​

Mendaftarkan modifikasi drop tulang serigala sebanding dengan ukuran tubuhnya:

java
GeneticsLootRegistry.register(EntityTypes.WOLF, (entity, genetics, stack, random) -> {
    float scale = DasikAnimalGeneticsAPI.getScale(entity);
    if (stack.is(Items.BONE)) {
        // Scale bone drop count proportionally to entity scale
        int newCount = Math.max(1, Math.round(stack.getCount() * scale));
        return new ItemStack(Items.BONE, newCount);
    }
    return stack;
});

🔗 Halaman Terkait ​

Official documentation & web portal for Dasik Igaijinn mods.