MFF

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

    Problème de recette [1.7.10]

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    9 Messages 4 Publieurs 488 Vues 4 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.
    • DeansD Hors-ligne
      Deans
      dernière édition par

      Bonjour à vous,

      Après des jours de tentatives pour essayer de comprendre pourquoi mes recettes sur mon mod ne veulent pas fonctionner. J’ai essayé de chercher des solutions de partout, mais aucun ne permet de résoudre mon problème.

      Je vais vous résumer la situation, j’ai fait une “machine” dans mon mod, tout fonctionne bien, gui, container, tile entity et le block, mais lorsque je souhaite effectuer un craft rien de ne se passe. J’ai bien fait la classe pour les recettes et enregistrer mes recettes dans la classe “RecipesMod” mais rien de change. Je vais vous partager les classes pour mieux comprendre.

      La classe StickMachineRecipes :

      import java.util.Iterator;
      import java.util.Map;
      import java.util.Map.Entry;
      
      import cpw.mods.fml.common.registry.GameRegistry;
      import fr.irisium.irisiummod.init.BlocksMod;
      import fr.irisium.irisiummod.init.ItemsMod;
      import net.minecraft.block.Block;
      import net.minecraft.init.Blocks;
      import net.minecraft.init.Items;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.item.crafting.CraftingManager;
      import net.minecraft.item.crafting.FurnaceRecipes;
      
      public class StickMachineRecipes 
      {
      	private static final StickMachineRecipes instance = new StickMachineRecipes();
      	private Map smeltingList = new HashMap();
      	
      	public StickMachineRecipes() 
      	{
      		
          }
      	
      	public void add(ItemStack stack1, ItemStack stack2, ItemStack stack3, ItemStack stack4, ItemStack stack5, ItemStack stack) {
              ItemStack[] stackList = new ItemStack[]{stack1, stack2, stack3, stack4, stack5};
              this.smeltingList.put(stackList, stack);
          }
      
          public void add(Item item1, Block item2, Item item3, Block item4, Item item5, ItemStack stack) {
              this.add(new ItemStack(item1), new ItemStack(item2), new ItemStack(item3), new ItemStack(item4), new ItemStack(item5), stack);
          }
      
          public void add(Item item1, Item item2, Item item3, Item item4, Item item5, ItemStack stack) {
              this.add(new ItemStack(item1), new ItemStack(item2), new ItemStack(item3), new ItemStack(item4), new ItemStack(item5), stack);
          }
      
          public void add(Block item1, Block item2, Item item3, Block item4, Block item5, ItemStack stack) {
              this.add(new ItemStack(item1), new ItemStack(item2), new ItemStack(item3), new ItemStack(item4), new ItemStack(item5), stack);
          }
      
          public void add(Item item1, Block item2, Block item3, Block item4, Block item5, ItemStack stack) {
              this.add(new ItemStack(item1), new ItemStack(item2), new ItemStack(item3), new ItemStack(item4), new ItemStack(item5), stack);
          }
      
          public ItemStack getSmeltingResult(ItemStack[] stack) {
              Iterator iterator = this.smeltingList.entrySet().iterator();
      
              while(iterator.hasNext()) {
                  Entry entry = (Entry)iterator.next();
                  if (this.isSameKey(stack, (ItemStack[])((ItemStack[])entry.getKey()))) {
                      return (ItemStack)entry.getValue();
                  }
              }
      
              return null;
          }
      
          private boolean isSameKey(ItemStack[] stackList, ItemStack[] stackList2) 
          {
      		boolean isSame = false;
      		for (int i = 0; i <= 4; ++i) 
      		{
      			if (stackList[i].getItem() != stackList2[i].getItem() || stackList[i].getItem() != stackList2[i].getItem()) 
      			{
                      return false;
                  }
                  isSame = true;
              }
              return isSame;
          }
      
      	public Map getSmeltingList() {
      		return this.smeltingList;
      	}
      
      	public static StickMachineRecipes smelting()
      		{
          		return instance;
      		}
      
      	public static StickMachineRecipes getManager() 
      	{
      		return instance;
      	}
      }
      

      La classe RecipesMod :

      import net.minecraft.init.Items;
      import net.minecraft.item.ItemStack;
      import fr.irisium.irisiummod.init.ItemsMod;
      import fr.irisium.irisiummod.init.BlocksMod;
      
      public class RecipesMod 
      {
      	public RecipesMod() 
      	{
      		
      	}
      	
      	public static void init() 
      	{
      		ItemsMod();
      		BlocksMod();
      		StickMachineRecipes();
      	}
      
      	private static void StickMachineRecipes() 
      	{
      		StickMachineRecipes.getManager().add(new ItemStack(ItemsMod.speedStick), new ItemStack(ItemsMod.speedOrb), new ItemStack(ItemsMod.irisiumIngot), new ItemStack(ItemsMod.irisiumStick), new ItemStack(ItemsMod.irisiumCore), new ItemStack(ItemsMod.eboniteIngot, 1));
      	}
      }
      

      J’espère que vous pourrez m’aider à résoudre ce problème.

      Merci d’avance.

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

        pour mettre un craft il faut mettre dans ta classe principale dans le @Mod.EventHandler public void init(FMLInitializationEvent event):

        new (nom de la classe ou il y a toute tes reccettes)().registerBrewingRecipes();

        puis dans ta classe des recettes tu met
        GameRegistry.addRecipe(new ItemStack(taclasse.tonitem), new Object[]{“NNN” ,“NNN”, “NNN”, ‘N’ , taclasse.tonobjet});
        //l item que tu veut craft //l item que tu a besoin pour craft ton item

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

          @Heaven a dit dans Problème de recette [1.7.10] :

          GameRegistry.addRecipe(new ItemStack(taclasse.tonitem), new Object[]{“NNN” ,“NNN”, “NNN”, ‘N’ , taclasse.tonobjet});

          J’ai fait ce que vous m’avez dit mais rien ne change, les crafts ne fonctionnent pas.

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

            ça ne marche pas car le craft ne se fait pas depuis la table de craft mais depuis une machine

            J'aime les pâtes

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

              C’est ça que je veux, faire les crafts depuis la machine est non via la table de craft

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

                tu a essayer d’attendre un peu ? peut-être que ta pas defini ta texture de ta fleche qui indique lquand est-ce que le craft fonctionne donc faut attendre et puis peut-être que ca peut marcher puis verifi d’avoir mis le speedstick dans le slot #1 le speedore dans le slot #2 et puis le irisiumingot dans le slot #3… et sa pourrai peut-être marcher 🤔

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

                  ou sinon supprime dans RecipesMod public static void StickMachineRecipes() et dans ta classe StickMachineRecipes tu met

                  public StickMachineRecipes() {
                      this.add(new ItemStack(ItemsMod.speedStick), new ItemStack(ItemsMod.speedOrb), new ItemStack(ItemsMod.irisiumIngot), new ItemStack(ItemsMod.irisiumStick), new ItemStack(ItemsMod.irisiumCore), new ItemStack(ItemsMod.eboniteIngot, 1));
                  }
                  

                  ca peut peut être marcher essaye les deux trucs que je t’ai dit et sa peut peut être marcher ^^

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

                    Bonjour, désolé pour l’attente, mais je suis partie en vacances donc je n’ai pas pu regarder les réponses. En soit j’ai bien mis la ligne de code dans ma classe StickMachineRecipes, en soit cela marche sauf que lorsque le craft à finit je reçois un message dans la console en me disant qu’il y a un problème. Voici le message :

                    text alternatif

                    Le problème vient de la classe TileEntityStickMachine, vous retrouverez le code plus haut.

                    Merci d’avance.

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

                      C’est bon, le problème de la recette fonctionne.

                      Merci à vous !

                      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