• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Bloc Plante

    Sans suite
    3
    6
    2098
    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.
    • A
      Altyrah dernière édition par

      Bonjour à tous,

      Je suis en train de créer un mod dédié au métier de fleuriste, avec une grande variété de fleurs, mais j’ai un soucis avec mon code, pas grand chose, mais j’ai besoin d’un coup de pouce 😉

      Voici mon Code :

      Ma Classe Principale :

      package fr.simelya.fleuriste.common;
      
      import net.minecraft.block.Block;
      import net.minecraft.creativetab.CreativeTabs;
      import cpw.mods.fml.common.Mod;
      import cpw.mods.fml.common.Mod.EventHandler;
      import cpw.mods.fml.common.Mod.Instance;
      import cpw.mods.fml.common.SidedProxy;
      import cpw.mods.fml.common.event.FMLInitializationEvent;
      import cpw.mods.fml.common.event.FMLPostInitializationEvent;
      import cpw.mods.fml.common.event.FMLPreInitializationEvent;
      import cpw.mods.fml.common.registry.GameRegistry;
      import fr.simelya.fleuriste.proxy.CommonProxy;
      
      @Mod(modid = ModFleuriste.MODID, name = "Fleuriste", version = "1.0.0")
      
      public class ModFleuriste {
      
      public static final String MODID = "fleuriste";
      
      @Instance(MODID)
      public static ModFleuriste instance;
      
      @SidedProxy(clientSide = "fr.simelya.fleuriste.proxy.ClientProxy", serverSide = "fr.simelya.fleuriste.proxy.CommonProxy")
      public static CommonProxy proxy;
      
      public static CreativeTabs tabsFleuriste = new TabsFleuriste("creativetabsfleuriste");
      
      public static Block alliumc, dandelionc, houstoniac, margueritec, orchideec, rosec, tulipec, bouquet, haiemargueritec, arumc, dahliac, crocusc, deliphiniumc, ecinanceec, liliumc, haiedahliac;
      
      @EventHandler
      public void preinit(FMLPreInitializationEvent event)
      {
      alliumc = new BlockAllium(6000).setBlockName("Allium").setBlockTextureName(MODID + ":allium").setStepSound(Block.soundTypeGrass);
      
      GameRegistry.registerBlock(alliumc, ItemBlockAllium.class, "alliumc");
      }
      
      @EventHandler
      public void init(FMLInitializationEvent event)
      {
      proxy.registerRender();
      }
      
      @EventHandler
      public void postinit(FMLPostInitializationEvent event)
      {
      
      }
      
      }
      
      

      Ma Classe Block :

      package fr.simelya.fleuriste.common;
      
      import java.util.List;
      import java.util.Random;
      
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      import net.minecraft.block.Block;
      import net.minecraft.block.BlockFlower;
      import net.minecraft.block.material.Material;
      import net.minecraft.client.renderer.texture.IIconRegister;
      import net.minecraft.creativetab.CreativeTabs;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.IIcon;
      
      public class BlockAllium extends BlockFlower {
      
      protected BlockAllium(int id) {
      super(Material.plants);
      this.setCreativeTab(ModFleuriste.tabsFleuriste);
      // TODO Auto-generated constructor stub
      }
      
      public static String[] subBlock = new String[]{"alliumblanc", "alliumbleuclair", "alliumbleu", "alliumcyan", "alliumgrisclair", "alliumgris", "alliumjaune", "alliummagenta", "alliummarron", "alliumnoir", "alliumorange", "alliumrose", "alliumrouge", "alliumvertclair", "alliumvert", "alliumviolet"};
      private IIcon[] IconArray;
      
      @SideOnly(Side.CLIENT)
         public void getSubBlocks(Item item, CreativeTabs tabs, List list)
         {
             list.add (new ItemStack(item, 1, 0));
             list.add (new ItemStack(item, 1, 1));
             list.add (new ItemStack(item, 1, 2));
             list.add (new ItemStack(item, 1, 3));
             list.add (new ItemStack(item, 1, 4));
             list.add (new ItemStack(item, 1, 5));
             list.add (new ItemStack(item, 1, 6));
             list.add (new ItemStack(item, 1, 7));
             list.add (new ItemStack(item, 1, 8));
             list.add (new ItemStack(item, 1, 9));
             list.add (new ItemStack(item, 1, 10));
             list.add (new ItemStack(item, 1, 11));
             list.add (new ItemStack(item, 1, 12));
             list.add (new ItemStack(item, 1, 13));
             list.add (new ItemStack(item, 1, 14));
             list.add (new ItemStack(item, 1, 15));
             }
      
         public int quantityDropped(Random par1Random)
         {
             return 1;
         }
      
         public IIcon getIcon(int side, int metadata)
      {
      return (IIcon) (metadata < subBlock.length && metadata >= 0 ? IconArray[metadata] : IconArray[0]);
      }
      
         public void registerBlockIcons(IIconRegister iconregister)
      {
      IconArray = new IIcon[subBlock.length];
      
      for(int i = 0; i < subBlock.length; i++)
      {
      IconArray* = (IIcon) iconregister.registerIcon("verrier:" + subBlock*);
      }
      
      }
      
      public boolean renderAsNormalBlock()
         {
             return false;
      
         }
      
      }
      

      Ma Classe ItemBlock :

      package fr.simelya.fleuriste.common;
      
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      import net.minecraft.block.Block;
      import net.minecraft.item.ItemBlock;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.IIcon;
      
      public class ItemBlockAllium extends ItemBlock {
      
      public ItemBlockAllium(Block block) {
      super(block);
             this.setMaxDamage(0);
             this.setHasSubtypes(true);
      this.setCreativeTab(ModFleuriste.tabsFleuriste);
      }
         @SideOnly(Side.CLIENT)
         public IIcon getIconFromDamage(int metadata)
         {
             return this.field_150939_a.getIcon(2, metadata);
         }
         public int getMetadata(int metadata)
         {
             return metadata;
         }
      
         public String getUnlocalizedName(ItemStack stack)
         {
             int metadata = stack.getItemDamage();
      
             if (metadata < 0 || metadata >= BlockAllium.subBlock.length)
             {
              metadata = 0;
             }
      
             return super.getUnlocalizedName() + "." + BlockAllium.subBlock[metadata];
         }
      
      }
      
      

      L’erreur se situe dans ma classe Block, au niveau du constructeur : "super(Material.plants); " est souligné en rouge avec comme erreur >> The constructor BlockFlower(Material) is undefined

      Ce n’est pas grand chose j’en suis sur, mais bon, il me semblait que le constructeur était bien défini.

      Merci d’avance !

      P.S : Pour information je ne souhaite pas intégrer de WorldGen des plantes, celles-ci ne seront que craftables par les personnes ayant le métier de fleuriste 😉

      1 réponse Dernière réponse Répondre Citer 0
      • Fine33
        Fine33 dernière édition par

        Je ne veux pas dire de bêtises, mais tu n’as pas créé le matériel plants.

        Mes mods :

        Agriculcraft

        #L'âge ne fait pas le mod.(L'âge ne fait pas le mod.)

        1 réponse Dernière réponse Répondre Citer 0
        • robin4002
          robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

          C’est pour ça que pour coder il faut savoir les bases de java …
          Ce message veut dire que dans la classe mère il n’y a pas de constructeur contenant Material.

          1 réponse Dernière réponse Répondre Citer 0
          • A
            Altyrah dernière édition par

            Ok ok, navré j’apprends par moi même, j’ai plutôt bien avancé, il ne me reste plus qu’à trouver comment mettre la plante dans les flower pots, le reste c’est ok !

            La Classe Principale :

            package fr.simelya.fleuriste.common;
            
            import net.minecraft.block.Block;
            import net.minecraft.creativetab.CreativeTabs;
            import cpw.mods.fml.common.Mod;
            import cpw.mods.fml.common.Mod.EventHandler;
            import cpw.mods.fml.common.Mod.Instance;
            import cpw.mods.fml.common.SidedProxy;
            import cpw.mods.fml.common.event.FMLInitializationEvent;
            import cpw.mods.fml.common.event.FMLPostInitializationEvent;
            import cpw.mods.fml.common.event.FMLPreInitializationEvent;
            import cpw.mods.fml.common.registry.GameRegistry;
            import fr.simelya.fleuriste.proxy.CommonProxy;
            
            @Mod(modid = ModFleuriste.MODID, name = "Fleuriste", version = "1.0.0")
            
            public class ModFleuriste {
            
            public static final String MODID = "fleuriste";
            
            @Instance(MODID)
            public static ModFleuriste instance;
            
            @SidedProxy(clientSide = "fr.simelya.fleuriste.proxy.ClientProxy", serverSide = "fr.simelya.fleuriste.proxy.CommonProxy")
            public static CommonProxy proxy;
            
            public static CreativeTabs tabsFleuriste = new TabsFleuriste("creativetabsfleuriste");
            
            public static Block alliumc, dandelionc, houstoniac, margueritec, orchideec, rosec, tulipec, bouquet, haiemargueritec, arumc, dahliac, crocusc, deliphiniumc, ecinanceec, liliumc, haiedahliac;
            
            @EventHandler
            public void preinit(FMLPreInitializationEvent event)
            {
            alliumc = new BlockAllium(6000).setBlockName("Allium").setBlockTextureName(MODID + ":allium").setStepSound(Block.soundTypeGrass);
            
            GameRegistry.registerBlock(alliumc, ItemBlockAllium.class, "alliumc");
            }
            
            @EventHandler
            public void init(FMLInitializationEvent event)
            {
            proxy.registerRender();
            }
            
            @EventHandler
            public void postinit(FMLPostInitializationEvent event)
            {
            
            }
            
            }
            
            

            La Classe Block :

            package fr.simelya.fleuriste.common;
            
            import java.util.List;
            import java.util.Random;
            
            import cpw.mods.fml.relauncher.Side;
            import cpw.mods.fml.relauncher.SideOnly;
            import net.minecraft.block.Block;
            import net.minecraft.block.BlockBush;
            import net.minecraft.block.BlockFlower;
            import net.minecraft.block.material.Material;
            import net.minecraft.client.renderer.texture.IIconRegister;
            import net.minecraft.creativetab.CreativeTabs;
            import net.minecraft.item.Item;
            import net.minecraft.item.ItemStack;
            import net.minecraft.util.IIcon;
            
            public class BlockAllium extends BlockBush {
            
            private int field_149862_O;
            
            protected BlockAllium(int id)
            {
            super(Material.plants);
            this.field_149862_O = id;
            this.setCreativeTab(ModFleuriste.tabsFleuriste);
            // TODO Auto-generated constructor stub
            }
            
            public static String[] subBlock = new String[]{"alliumblanc", "alliumbleuclair", "alliumbleu", "alliumcyan", "alliumgrisclair", "alliumgris", "alliumjaune", "alliummagenta", "alliummarron", "alliumnoir", "alliumorange", "alliumrose", "alliumrouge", "alliumvertclair", "alliumvert", "alliumviolet"};
            private IIcon[] IconArray;
            
            @SideOnly(Side.CLIENT)
            public void getSubBlocks(Item item, CreativeTabs tabs, List list)
            {
            list.add (new ItemStack(item, 1, 0));
            list.add (new ItemStack(item, 1, 1));
            list.add (new ItemStack(item, 1, 2));
            list.add (new ItemStack(item, 1, 3));
            list.add (new ItemStack(item, 1, 4));
            list.add (new ItemStack(item, 1, 5));
            list.add (new ItemStack(item, 1, 6));
            list.add (new ItemStack(item, 1, 7));
            list.add (new ItemStack(item, 1, 8));
            list.add (new ItemStack(item, 1, 9));
            list.add (new ItemStack(item, 1, 10));
            list.add (new ItemStack(item, 1, 11));
            list.add (new ItemStack(item, 1, 12));
            list.add (new ItemStack(item, 1, 13));
            list.add (new ItemStack(item, 1, 14));
            list.add (new ItemStack(item, 1, 15));
            }
            
            public int quantityDropped(Random par1Random)
            {
            return 1;
            }
            
            public IIcon getIcon(int side, int metadata)
            {
            return (IIcon) (metadata < subBlock.length && metadata >= 0 ? IconArray[metadata] : IconArray[0]);
            }
            
            public void registerBlockIcons(IIconRegister iconregister)
            {
            IconArray = new IIcon[subBlock.length];
            
            for(int i = 0; i < subBlock.length; i++)
            {
            IconArray* = (IIcon) iconregister.registerIcon("fleuriste:" + subBlock*);
            }
            
            }
            
            public boolean renderAsNormalBlock()
            {
            return false;
            
            }
            
            public boolean isOpaqueCube()
            {
            return false;
            }
            
            @SideOnly(Side.CLIENT)
            public int getRenderBlockPass()
            {
            return 1;
            }
            
            }
            

            La Classe ItemBlock :

            package fr.simelya.fleuriste.common;
            
            import cpw.mods.fml.relauncher.Side;
            import cpw.mods.fml.relauncher.SideOnly;
            import net.minecraft.block.Block;
            import net.minecraft.item.ItemBlock;
            import net.minecraft.item.ItemStack;
            import net.minecraft.util.IIcon;
            
            public class ItemBlockAllium extends ItemBlock {
            
            public ItemBlockAllium(Block block) {
            super(block);
            this.setMaxDamage(0);
            this.setHasSubtypes(true);
            this.setCreativeTab(ModFleuriste.tabsFleuriste);
            }
            @SideOnly(Side.CLIENT)
            public IIcon getIconFromDamage(int metadata)
            {
            return this.field_150939_a.getIcon(2, metadata);
            }
            public int getMetadata(int metadata)
            {
            return metadata;
            }
            
            public String getUnlocalizedName(ItemStack stack)
            {
            int metadata = stack.getItemDamage();
            
            if (metadata < 0 || metadata >= BlockAllium.subBlock.length)
            {
            metadata = 0;
            }
            
            return super.getUnlocalizedName() + "." + BlockAllium.subBlock[metadata];
            }
            
            }
            
            
            1 réponse Dernière réponse Répondre Citer 0
            • robin4002
              robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

              Pour le pot de fleur ça va pas être possible sans créer un nouveau pot de fleur.
              En passant je déplaces dans la bonne section, du code n’a rien dans à faire dans la section Cauldron.

              1 réponse Dernière réponse Répondre Citer 0
              • A
                Altyrah dernière édition par

                Ok, je vais essayer de voir cela, merci et désolé pour la mauvaise section : /

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

                MINECRAFT FORGE FRANCE © 2018

                Powered by NodeBB