Skip to content

Modificateurs de Butin Génétique

ComposantClasse
Interface Modificatricenet.dasik.social.api.genetics.GeneticsLootModifier
Classe de Registrenet.dasik.social.api.genetics.GeneticsLootRegistry
Classe de Point d'Injection Mixinnet.dasik.social.mixin.LivingEntityLootMixin
Méthode CibleLivingEntity.dropFromLootTable

🥩 Présentation & Interception des Butins

GeneticsLootRegistry permet aux mods d'ajuster dynamiquement les butins abandonnés à la mort d'une entité en fonction de ses caractéristiques génétiques (les créatures géantes rapportent plus de viande, les chétifs moins de ressources, les mutations rares débloquent des drops spécifiques).

ascii
[ LivingEntity.dropFromLootTable ]


 ┌─────────────────────────────┐
 │    LivingEntityLootMixin    │  ◄── @ModifyVariable Consumer Hook
 └──────────────┬──────────────┘


 ┌─────────────────────────────┐
 │    GeneticsLootRegistry     │  ◄── Lookup Modifier for EntityType
 └──────────────┬──────────────┘


 ┌─────────────────────────────┐
 │    GeneticsLootModifier     │  ◄── Scale stack count / Swap item
 └─────────────────────────────┘

💻 Exemple de Code Développeur

Enregistrement d'un modificateur de butin pour les loups proportionnel à leur taille :

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;
});

🔗 Pages Liées

Official documentation & web portal for Dasik Igaijinn mods.