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.