MFF

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

    Recipe…

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    6 Messages 3 Publieurs 808 Vues 1 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.
    • XeNeX Hors-ligne
      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
      • robin4002R Hors-ligne
        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
        • XeNeX Hors-ligne
          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
          • robin4002R Hors-ligne
            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
            • AymericRedA Hors-ligne
              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
              • XeNeX Hors-ligne
                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
                ContactMentions Légales

                MINECRAFT FORGE FRANCE © 2024

                Powered by NodeBB