1.12.2 Créer une barre de mana



  • Bonjour,
    J'aimerais créer une barre de mana pour mon mod mais débutant sur le modding, j'ai du mal a le faire.
    J'ai tenté de créer des capabilities mais je n'arrive pas a comprendre comment je pourrais stocker le mana de chaque joueurs.
    j'ai deja une barre de mana qui n'attend que d'avoir des vraies données.
    Merci
    Heorty



  • This post is deleted!


  • Petit cadeau :
    Par contre tu devras te dévbrouiller pour adapter le code

    public class Mana extends Gui
    {
        private Minecraft mc;
               
        public static int mana = 10;
        
        FontRenderer fontRender;
        
        final ResourceLocation full = new ResourceLocation(Reference.MODID + ":textures/gui/mana_full.png");
        final ResourceLocation mana_9 = new ResourceLocation(Reference.MODID + ":textures/gui/mana_9.png");
        final ResourceLocation mana_8 = new ResourceLocation(Reference.MODID + ":textures/gui/mana_8.png");
        final ResourceLocation mana_7 = new ResourceLocation(Reference.MODID + ":textures/gui/mana_7.png");
        final ResourceLocation mana_6 = new ResourceLocation(Reference.MODID + ":textures/gui/mana_6.png");
        final ResourceLocation mana_5 = new ResourceLocation(Reference.MODID + ":textures/gui/mana_5.png");
        final ResourceLocation mana_4 = new ResourceLocation(Reference.MODID + ":textures/gui/mana_4.png");
        final ResourceLocation mana_3 = new ResourceLocation(Reference.MODID + ":textures/gui/mana_3.png");
        final ResourceLocation mana_2 = new ResourceLocation(Reference.MODID + ":textures/gui/mana_2.png");
        final ResourceLocation mana_1 = new ResourceLocation(Reference.MODID + ":textures/gui/mana_1.png");
        final ResourceLocation empty = new ResourceLocation(Reference.MODID + ":textures/items/mana_empty.png");
    
        public Mana() 
        {
            this.mc = Minecraft.getMinecraft();
            this.fontRender = this.mc.fontRenderer;
        }
        
        @SideOnly(Side.CLIENT)
        @SubscribeEvent
        public void onRenderPre(RenderGameOverlayEvent.Pre event)
        {
            if(event.getType() == RenderGameOverlayEvent.ElementType.HELMET)
            {
                if(mana == 10)
                {
                    mc.getTextureManager().bindTexture(this.full);
                }
                else if(mana == 9)
                {
                    mc.getTextureManager().bindTexture(this.mana_9);
                }
                else if(mana == 8)
                {
                    mc.getTextureManager().bindTexture(this.mana_8);
                }
                else if(mana == 7)
                {
                    mc.getTextureManager().bindTexture(this.mana_7); 
                }
                else if(mana == 6)
                {
                    mc.getTextureManager().bindTexture(this.mana_6);
                }
                else if(mana == 5)
                {
                    mc.getTextureManager().bindTexture(this.mana_5); 
                }
                else if(mana == 4)
                {
                    mc.getTextureManager().bindTexture(this.mana_4);
                }
                else if(mana == 3)
                {
                    mc.getTextureManager().bindTexture(this.mana_3);
                }
                else if(mana == 2)
                {
                    mc.getTextureManager().bindTexture(this.mana_2); 
                }
                else if(mana == 1)
                {
                    mc.getTextureManager().bindTexture(this.mana_1);
                }
                else if(mana == 0)
                {
                    mc.getTextureManager().bindTexture(this.empty);
                }
                
                drawModalRectWithCustomSizedTexture(37,5,0,0,36,12,36,12);        
    
                event.setCanceled(true);
            }
        }
    

  • Moddeurs confirmés Rédacteurs Administrateurs

    Faut mieux lire la demande d'aide, il a déjà ce qu'il faut pour l'afficher.
    Ce qui lui manque c'est la capa.

    Sur quel point tu bloques pour la capability ?
    Une fois que tu as un capa fonctionnel, il te suffit de mettre une variable, int mana par exemple pour stocker la mana dans la capa.



  • Après pas mal de recherche j'ai vu qu'il existait surement un moyen de stocker le mana dans des NBTs mais je n'arrive pas a trouver la version 1.12.2 des entitydatas
    et pour les capabilities je n'arrive pas trop a comprendre n'y l'inteteret n'y l'utilisation.
    Merci


Log in to reply