MFF

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

    AutoSmelt

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.10
    26 Messages 8 Publieurs 7.8k 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.
    • DeletedD Hors-ligne
      Deleted
      dernière édition par

      Bon je t’ai déjà rapidement fait ceci pour les minérais vanilla UNIQUEMENT :

      public class ItemTestPickaxe extends ItemPickaxe
      {
      public ItemTestPickaxe()
      {
      super(ToolMaterial.EMERALD);
      MinecraftForge.EVENT_BUS.register(this);
      }
      
      @Override
      public boolean onBlockDestroyed(ItemStack stack, World world, Block block, int x, int y, int z, EntityLivingBase entity)
      {
      if((double)block.getBlockHardness(world, x, y, z) != 0.0D)
      {
      stack.damageItem(1, entity);
      }
      this.dropSmeltOre(block, x, y, z, (EntityPlayer)entity);
      return true;
      }
      
      private void dropSmeltOre(Block block, int x, int y, int z, EntityPlayer player)
      {
      if(block instanceof BlockOre)
      {
      System.out.println(block.getUnlocalizedName());
      ItemStack result = FurnaceRecipes.smelting().getSmeltingResult(new ItemStack(block));
      System.out.println(result.getDisplayName());
      if(!player.worldObj.isRemote && result != null)
      player.worldObj.spawnEntityInWorld(new EntityItem(player.worldObj, x, y, z, result));
      }
      }
      
      @SubscribeEvent
      public void onOreDestroyed(BlockEvent.HarvestDropsEvent event)
      {
      if(event.block instanceof BlockOre)
      event.drops.clear();
      }
      }
      

      Maintenant je regarde pour les mods ajoutant de nouveaux minérais …

      ATTENTION :
      Après m’en être rendu compte, je viens de me rendre compte que j’ai fait une petite bêtise dans mon code, que tu pourras régler (pas compliqué …). Si tu mines des BlockOre, tels que les minérais de redstone ou encore de lapis, mon code adapté pour d’autres minérais ayant besoin d’être cuits, feront spawn qu’une seule redstone ou qu’un seul lapis. Donc en fait il faudrait que tu retravailles avec des conditions l’event pour modifier la quantité du drop, ou tout simplement l’arraylist drops, je pense que c’est faisable en rajoutant ton itemstack avec une quantité (un des integer en paramètre du constructeur ItemStack) random comme le fait MC. Si tu n’y arrives pas, je t’aiderai (comme d’hab j’ai envie de dire) 😛

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

        La solution de robin ne convient pas ?

        Site web contenant mes scripts : http://SCAREXgaming.github.io

        Pas de demandes de support par MP ni par skype SVP.
        Je n'accepte sur skype que l…

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

          Si si elle convient, mais maintenant il faut trouver un moyen de get les ores rajoutés par des mods. Si il s’agit de simples block extends BlockOre alors ma solution est déjà adaptée, du moins j’espère que les nouvelles recettes de cuisson marcheront aussi….Je sais pas faut que je vois. Si en revanche, les moddeurs de mod,s rajoutant de nouveaux minérais, les ont simplement extends Block, alors là ça pose un peu + problème. Il faut soit voir si ils contiennent un ore dans leur unlocalizedName(), soit encore une fois se servir des recettes de cuisson avec la classe FurnaceRecipes.

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

            Et genre ça ? :

            
            package fr.Mosca421.Arthania;
            
            import cpw.mods.fml.common.eventhandler.SubscribeEvent;
            import java.util.ArrayList;
            
            import net.minecraft.client.Minecraft;
            import net.minecraft.enchantment.EnchantmentHelper;
            import net.minecraft.entity.player.EntityPlayer;
            import net.minecraft.item.Item;
            import net.minecraft.item.ItemStack;
            import net.minecraft.item.crafting.FurnaceRecipes;
            import net.minecraft.world.World;
            import net.minecraftforge.event.world.BlockEvent;
            import net.minecraftforge.event.world.BlockEvent.HarvestDropsEvent;
            
            public class BlockEventManager
            {
              boolean hasSilkTouch;
            
              @SubscribeEvent
              public void onEvent(BlockEvent.HarvestDropsEvent event)
              {
                Item breaker = null;
                if ((event.harvester != null) && (event.harvester.getCurrentEquippedItem() != null) && (event.harvester.getCurrentEquippedItem().getItem() != null))
                {
                  breaker = event.harvester.getCurrentEquippedItem().getItem();
                  this.hasSilkTouch = EnchantmentHelper.getSilkTouchModifier(event.harvester);
                }
                ItemStack a = new ItemStack(breaker);
                if ((event.drops != null) && (event.drops.size() != 0))
                {
                  String check = ((ItemStack)event.drops.get(0)).toString();
                  if ((!check.contains("sand")) && (!check.contains("stonebrick")) && (!check.contains("hellrock")) && (!check.contains("clay")) && (!check.contains("stonebricksmooth")) && (!check.contains("cactus")) && (!check.contains("stonebrick"))) {
                    for (int x = event.drops.size() - 1; x >= 0; x–) {
                      if (FurnaceRecipes.smelting().getSmeltingResult((ItemStack)event.drops.get(x)) != null)
                      {
                        ItemStack thisItem = FurnaceRecipes.smelting().getSmeltingResult((ItemStack)event.drops.get(x));
                        if ((breaker == Arthania.CobaltPickaxe) && (breaker != null) && (this.hasSilkTouch != true))          {
                          event.drops.remove(x);
                          event.drops.add(thisItem.copy());
                        }
                      }
                    }
                  }
                }
              }
            }
            
            

            Et je voudrais savoir, comment faire pour casser sur du 3x3 avec se qu’il y a au dessus qui est pris en compte ?

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

              @‘Plaigon’:

              Si si elle convient, mais maintenant il faut trouver un moyen de get les ores rajoutés par des mods. Si il s’agit de simples block extends BlockOre alors ma solution est déjà adaptée, du moins j’espère que les nouvelles recettes de cuisson marcheront aussi….Je sais pas faut que je vois. Si en revanche, les moddeurs de mod,s rajoutant de nouveaux minérais, les ont simplement extends Block, alors là ça pose un peu + problème. Il faut soit voir si ils contiennent un ore dans leur unlocalizedName(), soit encore une fois se servir des recettes de cuisson avec la classe  FurnaceRecipes.

              Pour le lapis/redstone, fait le drop normalement si le result est null. (Return false)

              Moddeur 1.8

              Développeur Java

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

                Pas de soucis pour la redstone, elle n’extends pas BlockOre, mais a sa classe à part. Du coup ça ne rentrera même pas dans la condition

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

                  Il n’y a pas de différence sans modifier le lapis drop normalement
                  Edit : Le message ne sert a rien enfaite xD
                  Je remarque se que j’ai mis juste au dessus je sais pa ssi c’est passer inaperçu :
                  Comment casser du 3x3 avec le code que j’ai mis pris en compte ?

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

                    Tu feras attention dans ton code, plusieurs choses sont un peu inutiles, notamment des null check : le .getItem() != null au début, le event.drops.size != o (inutile car avant tu check si la liste des drops n’est pas null ,soit l’un soit l’autre) et puis ta boucle à la fin, pourquoi initialises-tu ton index x à event.drops.size - 1 ? J’ai pas compris 😕
                    Sinon pour le reste, j’ai un peu survolé, mais ça m’a l’air bon 😃

                    Pour ton problème de casser des blocks sur une zone 3x3, tu ne souhaites donc pas casser sur l’axe des z, en profondeur ? Il te suffit juste de jouer avec les coordonnées du block, x…Cherche et teste un peu, on peut pas t’aider sur ça, de simples additions et soustractions, là ^^’

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

                      Je gere les addition enfin je crois (4+5 = 10 ?) Mais c’est surtout quesque j’utilise pour casser les blocs (les 9 en 3x3)

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

                        La solution de robin permet de faire cuire tous les blocks possibles, je vois pas où est le problème.

                        Site web contenant mes scripts : http://SCAREXgaming.github.io

                        Pas de demandes de support par MP ni par skype SVP.
                        Je n'accepte sur skype que l…

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

                          Ah oui ok bon bah sa devrait marcher alors.

                          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

                            Comme ceci :

                                @SubscribeEvent
                                public void onOreDestroyed(BlockEvent.HarvestDropsEvent event)
                                {
                                    if(event.harvester != null && event.harvester.getCurrentEquippedItem() != null && event.harvester.getCurrentEquippedItem().getItem() == ClassPrincipale.pickaxe)
                                    {
                                        for(ItemStack drop : event.drops)
                                        {
                                            ItemStack result = FurnaceRecipes.smelting().getSmeltingResult(drop);
                                            if(result != null)
                                            {
                                                event.drops.remove(drop);
                                                event.drops.add(result);
                                            }
                                        }
                                    }
                                }
                            

                            Tu prends en compte tout les cas possible. Y comprit les buches qui se transformerons en charbon de bois, le stone en stone au lieu de la cobble, etc …

                            La coloration de la balise java a prit des vacances ? Problème réglé, visiblement https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js renvoie un 404, le nouveau est ici : https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js
                            J’ai changé le code du thème, normalement ça fonctionne à nouveau comme il faut. (ctrl + F5 si ce n’est pas le cas).

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

                              Robin Ton code a un problème: Le jeux crash Exception ticking world
                              Sur cette ligne :
                              if(event.harvester.getCurrentEquippedItem() != null && event.harvester.getCurrentEquippedItem().getItem() == Arthania.CobaltPickaxe)
                              il drop plus et crash

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

                                Envoi le rapport de crash complet

                                Site web contenant mes scripts : http://SCAREXgaming.github.io

                                Pas de demandes de support par MP ni par skype SVP.
                                Je n'accepte sur skype que l…

                                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

                                  NPE ? Si oui, c’est harvester qui est null. J’ai modifié le code.

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

                                    C’est bizarre un harvester null, nan ?

                                    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

                                      En effet, je viens de vérifier il ne devrait pas être null.

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

                                        Bonjour je sais pas si le sujet et close mais se ne résous pas le problème du crash

                                        merci de répondre

                                        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 serait mieux de créer une nouvelle demande d’aide plutôt qu’up cette demande à laquelle l’auteur original n’a plus répondu depuis longtemps.
                                          (et il faudrait aussi envoyer ton code + le rapport de crash).

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

                                            @‘robin4002’:

                                            Il serait mieux de créer une nouvelle demande d’aide plutôt qu’up cette demande à laquelle l’auteur original n’a plus répondu depuis longtemps.
                                            (et il faudrait aussi envoyer ton code + le rapport de crash).

                                            Bonsoir et merci de me répondre, mon problème c’est que quand je casse les Ores vanilla je les repaire non cuit  et j’ai pas de crash 🙂

                                            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