MFF

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

    Deux petites erreurs dans mon four

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    26 Messages 5 Publieurs 5.4k 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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Pourtant dans mon mod ça fonctionne très bien, c’est étrange 😕

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

        Sûrement que dans ton mod tu n’a pas de carburant personnalisé

        EDIT : Nope vient pas de là non plus. Tu as dû coder quelque chose différemment c’est sûrement pour ça.

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

          Pour mon four j’ai créer mon propre fichier de recettes crée en un et met le a la place de FurnaceRecipes et voit si sa marche

          ​     private boolean canSmelt(){
          
                  if (this.slots[0] == null){
                      return false;
                  }else{
          
                      ItemStack itemstack = FourArcRecipes.smelting().getSmeltingResult(this.slots[0]);
                      if(itemstack == null) return false;
                      if(this.slots[2] == null) return true;
                      if(!this.slots[2].isItemEqual(itemstack)) return false;
                      int result = slots[2].stackSize + (itemstack.stackSize);
                      return (result <= getInventoryStackLimit() && result <= itemstack.getMaxStackSize());
          
                  }
          
              }
          

          Ton fichier de recettes devrait ressembler a sa

          ​package com.bowser.robotic.common;
          
          import java.util.HashMap;
          import java.util.Iterator;
          import java.util.Map;
          import java.util.Map.Entry;
          import net.minecraft.item.Item;
          import net.minecraft.item.ItemStack;
          
          public class FourArcRecipes {
          
              private static final FourArcRecipes SMELTING_BASE = new FourArcRecipes();
          
              private Map smeltingList = new HashMap();
              private Map experienceList = new HashMap();
          
              public static FourArcRecipes smelting() {
                  return SMELTING_BASE;
              }
          
              //RECETTES FOUR A ARC
              private FourArcRecipes(){
                  //this.addRecipie(Robotic.copperIngot, new ItemStack(Robotic.cuivreOre), 0.8F);
                  this.addRecipie(Item.getItemFromBlock(Robotic.tungsteneOre), new ItemStack(Robotic.tungsteneIngot), 0.8F);
                  this.addRecipie(Item.getItemFromBlock(Robotic.siliciumOre), new ItemStack(Robotic.siliciumIngot), 0.8F);
                  this.addRecipie(Item.getItemFromBlock(Robotic.cuivreOre), new ItemStack(Robotic.copperIngot), 0.8F);
          
              }
          
              public void addRecipie(Item item, ItemStack itemstack, float experience){
                  this.addLists(item, itemstack, experience);
              }
          
              public void addLists(Item item, ItemStack itemstack, float experience){
                  this.putLists(new ItemStack(item, 1, 32767), itemstack, experience);
              }
          
              public void putLists(ItemStack itemstack, ItemStack itemstack2, float experience){
                  this.smeltingList.put(itemstack, itemstack2);
                  this.experienceList.put(itemstack2, Float.valueOf(experience));
              }
          
              public ItemStack getSmeltingResult(ItemStack itemstack) {
                  Iterator iterator = this.smeltingList.entrySet().iterator();
                  Entry entry;
          
                  do {
                      if (!iterator.hasNext()) {
                          return null;
                      }
                      entry = (Entry) iterator.next();
                  } while (!canBeSmelted(itemstack, (ItemStack) entry.getKey()));
                  return (ItemStack) entry.getValue();
              }
          
              private boolean canBeSmelted(ItemStack itemstack, ItemStack itemstack2) {
                  return itemstack2.getItem() == itemstack.getItem() && (itemstack2.getItemDamage() == 32767 || itemstack2.getItemDamage() == itemstack.getItemDamage());
              }
          
              public float giveExperience(ItemStack itemstack){
                  Iterator iterator = this.experienceList.entrySet().iterator();
                  Entry entry;
          
                  do{
                      if(!iterator.hasNext()){
                          return 0.0f;
                      }
          
                      entry = (Entry) iterator.next();
                  }
                  while(!this.canBeSmelted(itemstack, (ItemStack) entry.getKey()));
          
                  if(itemstack.getItem().getSmeltingExperience(itemstack) != -1){
                          return itemstack.getItem().getSmeltingExperience(itemstack);
                  }
          
                  return ((Float) entry.getValue()).floatValue();
              }
          }
          

          Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

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

            @‘Bowser338’:

            Pour mon four j’ai créer mon propre fichier de recettes crée en un et met le a la place de FurnaceRecipes et voit si sa marche

            ​     private boolean canSmelt(){
            
                    if (this.slots[0] == null){
                        return false;
                    }else{
                   
                        ItemStack itemstack = FourArcRecipes.smelting().getSmeltingResult(this.slots[0]);
                        if(itemstack == null) return false;
                        if(this.slots[2] == null) return true;
                        if(!this.slots[2].isItemEqual(itemstack)) return false;
                        int result = slots[2].stackSize + (itemstack.stackSize);
                        return (result <= getInventoryStackLimit() && result <= itemstack.getMaxStackSize());
                       
                    }
                   
                   
                }
            

            Ton fichier de recettes devrait ressembler a sa

            ​package com.bowser.robotic.common;
            
            import java.util.HashMap;
            import java.util.Iterator;
            import java.util.Map;
            import java.util.Map.Entry;
            import net.minecraft.item.Item;
            import net.minecraft.item.ItemStack;
            
            public class FourArcRecipes {
            
                private static final FourArcRecipes SMELTING_BASE = new FourArcRecipes();
            
                private Map smeltingList = new HashMap();
                private Map experienceList = new HashMap();
            
                public static FourArcRecipes smelting() {
                    return SMELTING_BASE;
                }
                
                //RECETTES FOUR A ARC
                private FourArcRecipes(){
                    //this.addRecipie(Robotic.copperIngot, new ItemStack(Robotic.cuivreOre), 0.8F);
                    this.addRecipie(Item.getItemFromBlock(Robotic.tungsteneOre), new ItemStack(Robotic.tungsteneIngot), 0.8F);
                    this.addRecipie(Item.getItemFromBlock(Robotic.siliciumOre), new ItemStack(Robotic.siliciumIngot), 0.8F);
                    this.addRecipie(Item.getItemFromBlock(Robotic.cuivreOre), new ItemStack(Robotic.copperIngot), 0.8F);
                    
                    
                    
                    
                    
                    
                }
                
                public void addRecipie(Item item, ItemStack itemstack, float experience){
                    this.addLists(item, itemstack, experience);
                }
                
                public void addLists(Item item, ItemStack itemstack, float experience){
                    this.putLists(new ItemStack(item, 1, 32767), itemstack, experience);
                }
                
                public void putLists(ItemStack itemstack, ItemStack itemstack2, float experience){
                    this.smeltingList.put(itemstack, itemstack2);
                    this.experienceList.put(itemstack2, Float.valueOf(experience));
                }
            
                public ItemStack getSmeltingResult(ItemStack itemstack) {
                    Iterator iterator = this.smeltingList.entrySet().iterator();
                    Entry entry;
            
                    do {
                        if (!iterator.hasNext()) {
                            return null;
                        }
                        entry = (Entry) iterator.next();
                    } while (!canBeSmelted(itemstack, (ItemStack) entry.getKey()));
                    return (ItemStack) entry.getValue();
                }
            
                private boolean canBeSmelted(ItemStack itemstack, ItemStack itemstack2) {
                    return itemstack2.getItem() == itemstack.getItem() && (itemstack2.getItemDamage() == 32767 || itemstack2.getItemDamage() == itemstack.getItemDamage());
                }
                
                public float giveExperience(ItemStack itemstack){
                    Iterator iterator = this.experienceList.entrySet().iterator();
                    Entry entry;
                    
                    do{
                        if(!iterator.hasNext()){
                            return 0.0f;
                        }
                        
                        entry = (Entry) iterator.next();
                    }
                    while(!this.canBeSmelted(itemstack, (ItemStack) entry.getKey()));
                    
                    if(itemstack.getItem().getSmeltingExperience(itemstack) != -1){
                            return itemstack.getItem().getSmeltingExperience(itemstack);
                    }
                    
                    return ((Float) entry.getValue()).floatValue();
                }
            }
            

            Hum… Je ne vois pas l’utilité car mon problème est juste que je ne peux pas utiliser les carburants de base

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

              Ah oui excuse moi

              en regardant dans ton tile entity par rapport au getItemBurnTime

              ​public static int getItemBurnTime(ItemStack itemstack){              if(itemstack == null){  
              
                                      return 0;
                            }else{
                                     Item item = itemstack.getItem();
              
                                      if(item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.air){
                                              Block block = Block.getBlockFromItem(item);
              
                                              if(block == ModBlocks.HoleChest)
              {
                                                      return 512000;
                                              }
                                      }
              
                                      if(item == ModItems.awesomeCrystal) return 128000;
                                      if(item instanceof ItemTool && ((ItemTool) item).getToolMaterialName().equals("awesomeToolMaterial")) return256000;
                                      return GameRegistry.getFuelValue(itemstack);
                              }
                      }
              

              voila les carburants de ton four ( qui ont des valeurs un peux folles xD 😞
              HoleChest
              awesomeCrystal
              et tout les outils du material awesomeToolMaterial

              Si je dit pas de conneries ton four marche uniquement avec ces 2 items ou blocks

              Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

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

                exactement et j’ai changer les valeurs entre-temps aussi elles sont moins abusive xD

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

                  donc si tu rajoute les carburants de minecraft vanilla sa marche pas ?

                  Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

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

                    le truc est que les valeurs sont complètements buguer quand je réussi à les ajouter donc 😕

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

                      tu met ces valeurs la ?

                      ​
                                  if (item instanceof ItemTool && ((ItemTool)item).getToolMaterialName().equals("WOOD")) return 200;
                                  if (item instanceof ItemSword && ((ItemSword)item).getToolMaterialName().equals("WOOD")) return 200;
                                  if (item instanceof ItemHoe && ((ItemHoe)item).getToolMaterialName().equals("WOOD")) return 200;
                                  if (item == Items.stick) return 100;
                                  if (item == Items.coal) return 1600;
                                  if (item == Items.lava_bucket) return 20000;
                                  if (item == Item.getItemFromBlock(Blocks.sapling)) return 100;
                                  if (item == Items.blaze_rod) return 2400;
                      

                      Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

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

                        non mais la personne juste avant m’avait donner une ligne de code qui devrait être dans ce style … mais le probleme de ces valeurs est quelles ne couvrent pas tous les item de base.

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

                          Beh tu change le Items.item et tu le fais avec tout le comburant

                          Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

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

                            mais c’est long 😧

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

                              Si c’est tout les items/blocks de base, j’ai trouver sa dans le four minecraft basique tout y est listé
                              Tu as tout les outils de type bois tu as les stick le charbon etc y a rien de moins après tu rajoute si tu as des carburants spécifiques à ton mod ou des blocks/items vanilla que tu veux utiliser comme carburant.

                              Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

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

                                Ah bah oui j’ai juste a copier tu as raison je n’y avait pas penser ^^’

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

                                  Sinon tu fais une array et apres tu appellé ton array dans une seule fonction. C’est possible je crois

                                  Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

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

                                    les valeurs ne sont pas buguées du coup ? sa marche correctement ?

                                    Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

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

                                      Je sais pas je penses que ca peux marcher

                                      Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

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

                                        Désoler j’avais pas vu ton message quand j’ai posté le mien ( je parlais a Frousties )

                                        Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

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

                                          Les valeurs sont plus bugués car enfait quand je met les valeur de base cela me les multiplier par 10 donc mon charbon cuisait 80 items(même plus) ^^’

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

                                          MINECRAFT FORGE FRANCE © 2024

                                          Powered by NodeBB