Changez la texture du "coeur jaune"



  • Voila, j'ai créez avec l'aide d'Isador un item champs de force,

    on a l'effet, l'item tous ce que l'on veux sauf que notre item mets des cœurs jaunes (vue que c'est similaire à absorption)

    j'ai fait une texture pour remplacez ces cœurs jaunes, mais voila

    comment modifiez ces "cœurs jaunes" sans les modifiez pour la golden apple, car si je remplace les cœurs jaunes par ma texture
    certes j'ai ce que je veux, mais si un joueurs mange une enchanted apple …

    donc ce que je souhaite en précis

    c'est pouvoir changez ces cœur jaunes "uniquement" quand j'ai l'item en question

    j’espère que je me suis assez précis dans mes indication ::-/

    merci d'avance 🙂


  • Rédacteurs

    tu peux créer ton propre effet de potion avec les même effet mais tu modifies la texture lié à l'effet.

    Voici le code de kevin_68 pour t'aidé, il faudra juste ensuite enregistrer la potion :
    https://github.com/FFMT/nanotech_mod/blob/master/common/fr/mcnanotech/kevin_68/nanotechmod/main/other/NanotechPotion.java

    :::

    package net.minecraft.potion;
    
    import net.minecraft.entity.EntityLivingBase;
    import net.minecraft.entity.ai.attributes.BaseAttributeMap;
    
    public class PotionAbsoption extends Potion
    {
    private static final String __OBFID = "CL_00001524";
    
    protected PotionAbsoption(int p_i1569_1_, boolean p_i1569_2_, int p_i1569_3_)
    {
    super(p_i1569_1_, p_i1569_2_, p_i1569_3_);
    }
    
    public void removeAttributesModifiersFromEntity(EntityLivingBase p_111187_1_, BaseAttributeMap p_111187_2_, int p_111187_3_)
    {
    p_111187_1_.setAbsorptionAmount(p_111187_1_.getAbsorptionAmount() - (float)(4 * (p_111187_3_ + 1)));
    super.removeAttributesModifiersFromEntity(p_111187_1_, p_111187_2_, p_111187_3_);
    }
    
    public void applyAttributesModifiersToEntity(EntityLivingBase p_111185_1_, BaseAttributeMap p_111185_2_, int p_111185_3_)
    {
    p_111185_1_.setAbsorptionAmount(p_111185_1_.getAbsorptionAmount() + (float)(4 * (p_111185_3_ + 1)));
    super.applyAttributesModifiersToEntity(p_111185_1_, p_111185_2_, p_111185_3_);
    }
    }
    

    :::

    Il faut peut être encore ajouter quelques morceau de code, mais ça te donne un bon début.

    PS : si tu souhaite modifier le rendu dans le guiIngame tu devra réécrire la class : net.minecraft.client.guiGuiIngame avec un TickHandler



  • ok merci 😉



  • Ou il peut toujours utiliser:
    :::

    
    public void onRenderExperienceBar(RenderGameOverlayEvent event)
    {
    if(event.isCancelable() || event.type != ElementType.EXPERIENCE)
    {
    return;
    }
    
    [Ce que tu as à modifier, renders, etc…]
    
    }
    
    

    :::



  • @'samhalo007':

    Ou il peut toujours utiliser:
    :::

    
    public void onRenderExperienceBar(RenderGameOverlayEvent event)
    {
    if(event.isCancelable() || event.type != ElementType.EXPERIENCE)
    {
    return;
    }
    
    [Ce que tu as à modifier, renders, etc…]
    
    }
    
    

    :::

    Pourquoi tester si l'event est cancellable ?



  • C'est quelquechose qui est toujours utilisé pour les render d'overlays


Log in to reply