• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Recipe…

    1.7.x
    1.7.10
    3
    6
    748
    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.
    • XeNe
      XeNe dernière édition par

      Hello, aujourd’hui j’ai changé toute ma classe pour qu’elle accepte les ItemStack.Donc j’ai suivi le tuto de BrokenSwing
      Mais quand J’ajoute mes recettes

      public LaserCutterRecipe()
         {
             this.addRecipe(Items.apple, new ItemStack(Blocks.diamond_block)); //Ajout d'une recette, on fait un bloc de diamant à partie de deux pommes et une flèche
             this.addRecipe(new ItemStack(TAqmod2.oreBlockTAq,1,0), new ItemStack(TAqmod2.dustOre,9,0));
             this.addRecipe(new ItemStack(TAqmod2.oreBlockTAq,1,1), new ItemStack(TAqmod2.dustOre,9,1));
             this.addRecipe(new ItemStack(TAqmod2.oreBlockTAq,1,2), new ItemStack(TAqmod2.dustOre,9,2));
             this.addRecipe(new ItemStack(TAqmod2.oreBlockTAq,1,3), new ItemStack(TAqmod2.dustOre,9,3));
             this.addRecipe(new ItemStack(TAqmod2.oreBlockTAq,1,4), new ItemStack(TAqmod2.dustOre,9,4));
             this.addRecipe(Blocks.iron_ore, new ItemStack(TAqmod2.dustOre,9,6));
             this.addRecipe(Blocks.gold_ore, new ItemStack(TAqmod2.dustOre,9,7));
         }
      
      

      il check juste le premier recipe , c’est a dire que par exmple il a vu que c’est du lead ore donc il me donne du lead dust Mais quand je met du silver ore il me donne du lead dust.
      du coup j’ai exactement le meme code dans le tuto…
      Une idée?

      Aller voir l’état de mon mod sur trello! https://trello.com/b/p0JMg4ki/taqmod2

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

        Heu ? Ta fonction addRecipe fait quoi ?
        http://www.minecraftforgefrance.fr/showthread.php?tid=1436

        1 réponse Dernière réponse Répondre Citer 0
        • XeNe
          XeNe dernière édition par

          je me suis mal exprimé….Il s’agit d’un Gui donc d’une machine. Bref voila ma class Recipe au cas où ```java
          package block;

          import java.util.ArrayList;
          import java.util.HashMap;
          import java.util.Iterator;
          import java.util.Map;
          import java.util.Map.Entry;

          import tileEntity.TileEntityGenerator;
          import tileEntity.TileEntityLaserCutterMachine;
          import cpw.mods.fml.common.registry.GameRegistry;
          import main.TAqmod2;
          import net.minecraft.block.Block;
          import net.minecraft.init.Blocks;
          import net.minecraft.init.Items;
          import net.minecraft.item.Item;
          import net.minecraft.item.ItemBlock;
          import net.minecraft.item.ItemStack;
          import net.minecraftforge.oredict.OreDictionary;

          public class LaserCutterRecipe {
          /*
          public LaserCutterRecipe(){

          }

          public static ItemStack getGenResult(Item item) {

          return getOutput(item);
          }

          public static ItemStack getOutput(Item item) {

          if (item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.air)
          {
          Block block = Block.getBlockFromItem(item);

          if(block == Blocks.iron_ore)return new ItemStack(TAqmod2.dustOre,9,6);
          if(block == Blocks.gold_ore)return new ItemStack(TAqmod2.dustOre,9,7);
          if(block == TAqmod2.oreBlockTAq.getBlockFromName(“oreCopper”))return new ItemStack(TAqmod2.dustOre,9,0);

          }

          if(item == Items.apple)return new ItemStack(Items.diamond,9);

          return null;
          }
          / public static ItemStack getOutput(Item item){

          if(stack == new ItemStack(TAqmod2.oreBlockTAq,1,0))return new ItemStack(TAqmod2.dustOre,9,0);

          return null;

          } */
          private static final LaserCutterRecipe smeltingBase = new LaserCutterRecipe(); //Permet d’instancier votre classe car vous le l’instancierez nul part ailleur
          private Map smeltingList = new HashMap(); //Ceci permet de mettre vos recettes

          public LaserCutterRecipe()
          {
          this.addRecipe(Items.apple, new ItemStack(Blocks.diamond_block)); //Ajout d’une recette, on fait un bloc de diamant à partie de deux pommes et une flèche
          this.addRecipe(new ItemStack(TAqmod2.oreBlockTAq,1,0), new ItemStack(TAqmod2.dustOre,9,0));
          this.addRecipe(new ItemStack(TAqmod2.oreBlockTAq,1,1), new ItemStack(TAqmod2.dustOre,9,1));
          this.addRecipe(new ItemStack(TAqmod2.oreBlockTAq,1,2), new ItemStack(TAqmod2.dustOre,9,2));
          this.addRecipe(new ItemStack(TAqmod2.oreBlockTAq,1,3), new ItemStack(TAqmod2.dustOre,9,3)); //<— BUGGED
          this.addRecipe(new ItemStack(TAqmod2.oreBlockTAq,1,4), new ItemStack(TAqmod2.dustOre,9,4));
          this.addRecipe(Blocks.iron_ore, new ItemStack(TAqmod2.dustOre,9,6));
          this.addRecipe(Blocks.gold_ore, new ItemStack(TAqmod2.dustOre,9,7));
          }

          public void addRecipe(ItemStack stack1, ItemStack stack4) //Cette fonction de comprend que des ItemStack, c’est celle qui ajoute les recettes à la HashMap
          {
          ItemStack[] stackList = new ItemStack[]{stack1};
          this.smeltingList.put(stackList, stack4);
          }

          public void addRecipe(Item item1, ItemStack stack) //1er cas
          {
          this.addRecipe(new ItemStack(item1), stack);
          }

          public void addRecipe(Block block1, ItemStack stack) //2nd cas
          {
          this.addRecipe(Item.getItemFromBlock(block1), stack);
          }

          public ItemStack getSmeltingResult(ItemStack[] stack) //En argument : un tableau avec le contenu des trois slots d’input
          {
          Iterator iterator = this.smeltingList.entrySet().iterator();
          Entry entry;

          do
          {
          if (!iterator.hasNext()) // Si il n’y a plus de recettes dans la liste
          {
          return null; //Il n’y a pas de recette correspondante
          }
          entry = (Entry)iterator.next(); //prend la recette suivante
          }
          while (!this.isSameKey(stack, (ItemStack[])entry.getKey())); //Check si le tableau passé en argument correspond à celui de la recette, vous avez une erreur ici, on crée la fonction tout de suite.

          return (ItemStack)entry.getValue(); //retourne l’itemstack : resultat de la recette
          }

          private boolean isSameKey(ItemStack[] stackList, ItemStack[] stackList2)
          {
          boolean isSame = false; //Au début ce n’est pas la même
          for(int i=0; i<=0; i++) // Pour les 3 items
          {
          if(stackList*.getItem() == stackList2*.getItem()) //On vérifie si ce sont les même
          {
          isSame = true; // Si c’est le cas alors isSame vaut true
          }
          else
          {
          return false; //Si un seul n’est pas bon, on cherche pas, c’est pas la bonne recette
          }
          }
          return isSame;
          }

          public Map getSmeltingList()
          {
          return this.smeltingList;
          }

          public static LaserCutterRecipe smelting()
          {
          return smeltingBase;
          }
          }

          Aller voir l’état de mon mod sur trello! https://trello.com/b/p0JMg4ki/taqmod2

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

            Dans ta fonction isSameKey il faut que tu vérifies le metadata.
            if(stackList*.getItem() == stackList2*.getItem())
            ->
            if(stackList*.getItem() == stackList2*.getItem() && stackList*.getItemDamage() == stackList2*.getItemDamage())

            1 réponse Dernière réponse Répondre Citer 0
            • AymericRed
              AymericRed dernière édition par

              Ou Itemstack.areitemstacksequals(stack1,stack2)
              Pas sur du nom de la fonction.

              Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

              AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

              Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
              Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

              1 réponse Dernière réponse Répondre Citer 0
              • XeNe
                XeNe dernière édition par

                Ok merci Robin ça marche nickel. J’avais pas vu pour le metadate ^^

                Aller voir l’état de mon mod sur trello! https://trello.com/b/p0JMg4ki/taqmod2

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

                MINECRAFT FORGE FRANCE © 2018

                Powered by NodeBB