MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Modifier un item après sa création

    Planifier Épinglé Verrouillé Déplacé Non résolu Sans suite
    1.7.10
    5 Messages 2 Publieurs 455 Vues 2 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • Q Hors-ligne
      Quinella
      dernière édition par

      Bonsoir, j’aurais une petite question à laquelle je n’ai pas trouvé de réponse. Je suis en train de faire un mod dans lequel j’ajoute notamment des fours et des forges. Dans le four, je souhaiterais ajouter un slot dans lequel on pourrait mettre du sel qui nous permettrait d’augmenter la nourriture que donnes les ingrédients qu’on fait cuire.
      Pour la forge, j’aimerais que les dégats que dont les épées qu’on forge soit variables.

      Mon problème étant que je ne souhaite pas créer une épée par dégat (une épée de 1 dégat, une de deux, trois, etc.), mais j’aimerais pouvoir faire qqch comme

      onCraft(ItemStack stack){
           stack.setFood(5.0f);
      }
      

      Je sais pas si c’était clair mais en gros j’aimerais modifier l’item après l’avoir créé et enregistré (register), comme il y a des runes dans certains mods, etc.

      Je vous remercie d’avance de prendre la peine de lire mon message et d’y réfléchir.
      Cordialement,

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002R Hors-ligne
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
        dernière édition par

        Salut,
        Il faudrait mettre tes propriétés dans le tag NBT de l’item et dans la classe de l’item faire en sorte que les dégâts infligés soit en fonction de la valeur du nbt (il faudra pour ça override la fonction public boolean hitEntity(ItemStack stack, EntityLivingBase attackedLiving, EntityLivingBase attackerLiving) dans le cas de l’épée et pour augmenter la nourriture il faut override la fonction onItemEat (ou quelque chose qui y ressemble, je n’ai plus le nom de la fonction exacte).

        1 réponse Dernière réponse Répondre Citer 0
        • Q Hors-ligne
          Quinella
          dernière édition par

          Pour l’item c’est onFoodEaten 😉
          Justement, pour stocker des données avec les NBT, je dois utilises les fonctions writeToNBT et readFromNBT ? Elles n’existent pas dans la classe item, donc je ne sais pas comment faire.
          Merci sincèrement de ta réponse si rapide est efficace, c’est la troisième fois que je poste quelque chose et vous mettez toujours moins de 24h à mon répondre (moins d’une heure là) et on voit que vous travaillez bien !

          1 réponse Dernière réponse Répondre Citer 0
          • robin4002R Hors-ligne
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs
            dernière édition par

            Il faut ajouter les valeurs au tag nbt de l’itemstack.
            Donc déjà il te faudra forcement une fonction avec l’itemstack en argument pour manipuler ça.

            Le code que tu dois faire ressemblera à ça :

            if(!stack.hasTagCompound())
            {
                stack.setTagCompound(new NBTTagCompound);
            }
            stack.getTagCompound().setInteger("salt", 5); // par exemple pour mettre le sel à 5
            

            Et pour récupérer la valeur :

            int salt = 0;
            if(stack.hasTagCompound())
            {
                salt = stack.getTagCompound()getInteger("salt"); // renvoie 0 si le tag n'existe pas
            }
            // reste de la logique
            
            1 réponse Dernière réponse Répondre Citer 0
            • Q Hors-ligne
              Quinella
              dernière édition par

              Merci, c’est tout bon maintenant.

              1 réponse Dernière réponse Répondre Citer 0
              • 1 / 1
              • Premier message
                Dernier message
              Design by Woryk
              ContactMentions Légales

              MINECRAFT FORGE FRANCE © 2024

              Powered by NodeBB