• Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Solved Plantation

    1.7.x
    1.7.x
    3
    11
    1843
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      thecraft38 last edited by

      Bonjour , je fais des plantations pour mon mods mais j’ai quelque problèmes : quand je casse ma plantation le drop est une carrot et les plans non pas de textures lors des stages.
      ma class :

      package thecraft.mod.common.blocks;
      
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      import net.minecraft.block.BlockCarrot;
      import net.minecraft.block.BlockCrops;
      import net.minecraft.client.renderer.texture.IIconRegister;
      import net.minecraft.init.Items;
      import net.minecraft.item.Item;
      import net.minecraft.util.IIcon;
      import thecraft.mod.common.ewifaction;
      
      public class BlockCultureTomate extends BlockCarrot {
      
      public static String[] type = new String[]{"tomate_stage_0", "tomate_stage_1", "tomate_stage_2"};
      private IIcon[] IconArray;
      
      public BlockCultureTomate ()
      {
      super();
      }
      
             public IIcon getIcon(int side, int metadata)
             {
                return (IIcon) (metadata < type.length && metadata >= 0 ? IconArray[metadata] : IconArray[0]);
             }
      
             public void registerBlockIcons(IIconRegister iconregister)
      {
              IconArray = new IIcon[type.length];
      
      for(int i = 0; i < type.length; i++)
      {
      IconArray* = (IIcon) iconregister.registerIcon("ewifaction:" + type*);
      }
      }
      
      protected Item getSeedItem()
      {
      return ewifaction.GraineTomate;
      }
      
      protected Item getCropItem()
      {
      return ewifaction.ItemTomate;
      }
      
      public int damageDropped(int metadata)
      {
      return metadata;
      }
      }
      

      merci d’avance pour votre aide

      edit : j’ai pas mal chercher sur le forum et je suis arrivé  la :

      extends BlockCrops {
      
      public static final String name = "BlockCultureTomate";
      private IIcon[] textures;
      
      public BlockCultureTomate()
      {
      setBlockTextureName(ewifaction.MODID + ":" + name);
      }
      
      @Override
      public IIcon getIcon(int side, int meta) {
      if (meta < 4) {
      if (meta == 3) {
      meta = 2;
      }
      
      return this.textures[meta >> 1];
      } else {
      return this.textures[3];
      }
      }
      
      @Override
      protected Item func_149866_i() {
      return ewifaction.GraineTomate;
      }
      
      @Override
      protected Item func_149865_P() {
      return ewifaction.ItemTomate;
      }
      
      @Override
      public void registerBlockIcons(IIconRegister p_149651_1_) {
      this.textures = new IIcon[4];
      
      for (int i = 0; i < this.textures.length; ++i) {
      this.textures* = p_149651_1_.registerIcon(this.getTextureName() + "_stage_" + i);
      }
      }
      }
      

      il reste un seul problème le block n’evolue pas il reste a la première texture même avec de la bone meal

      1 Reply Last reply Reply Quote 0
      • T
        thecraft38 last edited by

        après de nombreux test et recherche je suis arrivé la dessus :

        package thecraft.mod.common.blocks;
        
        import java.util.Random;
        
        import cpw.mods.fml.relauncher.Side;
        import cpw.mods.fml.relauncher.SideOnly;
        import net.minecraft.block.BlockCarrot;
        import net.minecraft.block.BlockCrops;
        import net.minecraft.client.renderer.texture.IIconRegister;
        import net.minecraft.entity.player.EntityPlayer;
        import net.minecraft.init.Items;
        import net.minecraft.item.Item;
        import net.minecraft.util.ChatComponentText;
        import net.minecraft.util.IIcon;
        import net.minecraft.world.World;
        import thecraft.mod.common.ewifaction;
        
        public class BlockCultureTomate extends BlockCrops
        {
        public static final String name = "BlockCultureTomate";
        private IIcon[] textures;
        
        public BlockCultureTomate() {
        setBlockTextureName(ewifaction.MODID + ":" + name);
        }
        
        @Override
        public IIcon getIcon(int side, int meta) {
        if (meta < 0 || meta > 2) {
        meta = 2;
        }
        
        return this.textures[meta];
        }
        
        @Override
        public Item func_149866_i() {
        return ewifaction.ItemTomate;
        }
        
        @Override
        public Item func_149865_P() {
        return ewifaction.ItemTomate;
        }
        
        @Override
        public void registerBlockIcons(IIconRegister p_149651_1_) {
        this.textures = new IIcon[3];
        
        for (int i = 0; i < this.textures.length; ++i) {
        this.textures* = p_149651_1_.registerIcon(this.getTextureName() + "_stage_" + i);
        }
        }
        
        @Override
        public boolean func_149851_a(World p_149851_1_, int p_149851_2_, int p_149851_3_, int p_149851_4_, boolean p_149851_5_) {
        return false;
        }
        
        @Override
        public boolean func_149852_a(World p_149852_1_, Random p_149852_2_, int p_149852_3_, int p_149852_4_, int p_149852_5_) {
        return false;
        }
        
        }
        
        

        le seul problème restant est que les drop sont toujours une seul tomate.
        quelqu’un aurait une solution ?

        1 Reply Last reply Reply Quote 0
        • robin4002
          robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

          Il faut gérer ça avec la fonction quantityDropped

          1 Reply Last reply Reply Quote 0
          • T
            thecraft38 last edited by

            voila se que j’ai fait mais  quand la plante est en état final le drop est toujours de 1 :

            public int quantityDropped(Random random, int meta)
            {
            if(meta > 1)
            {
            return 3;
            }
            else
            {
            return 1;
            }
            
            1 Reply Last reply Reply Quote 0
            • Gabs
              Gabs last edited by

              Tu veux faire quoi en fait ? tu veux modifier le nombre d’item drop ? mais tu veux le faire aléatoirement ?

              1 Reply Last reply Reply Quote 0
              • T
                thecraft38 last edited by

                non je veux juste le modifier pas en aléatoire mais dans l’état actuel du code quand je case la plante peut importe l’étape de la plante le drop est 1 seul tomate.

                1 Reply Last reply Reply Quote 0
                • Gabs
                  Gabs last edited by

                  Ahh en fonction de la hauteur de ton bloc tu veux drop plus d’item d’accord.

                  Je t’avoue que je sais pas trop a quoi correspond l’Integer meta, essaye de faire un System.out.println(meta); dans la fonction quantityDropped

                  1 Reply Last reply Reply Quote 0
                  • robin4002
                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                    Il y a deux variantes de la fonction damageDropped.
                    Celle-ci :

                    public int quantityDropped(Random p_149745_1_)
                    {
                    return 1;
                    }
                    

                    Ou celle-ci :

                    public int quantityDropped(int meta, int fortune, Random random)
                    {
                    /**
                    * Returns the usual quantity dropped by the block plus a bonus of 1 to 'i' (inclusive).
                    */
                    return quantityDroppedWithBonus(fortune, random);
                    }
                    

                    public int quantityDropped(Random random, int meta) n’existe pas.

                    1 Reply Last reply Reply Quote 0
                    • T
                      thecraft38 last edited by

                      je ne vois pas trop comment utiliser se code un exemple serait il possible ?

                      1 Reply Last reply Reply Quote 0
                      • robin4002
                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs last edited by

                        C’est une blague ?

                        public int quantityDropped(int meta, int fortune, Random random)
                        {
                        if(meta > 1)
                        {
                        return 3;
                        }
                        return 1;
                        }
                        
                        1 Reply Last reply Reply Quote 0
                        • T
                          thecraft38 last edited by

                          non j’ai voulu chercher compliqué la ou il n’y avait pas lieu d’être en effet comme sa le code parait logique

                          1 Reply Last reply Reply Quote 0
                          • 1 / 1
                          • First post
                            Last post
                          Design by Woryk
                          Contact / Mentions Légales

                          MINECRAFT FORGE FRANCE © 2018

                          Powered by NodeBB