Navigation

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

    SOLVED Item à metadata en 1.7 ?

    1.7.x
    1.7.x
    3
    14
    2522
    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.
    • Polygon48
      Polygon48 last edited by

      Bonsoir ! Voilà, je me retrouve ici pour savoir si il était encore possible de créer des items à metadata en 1.7 car les ID ne marchent plus …
      Si oui pouvez vous me donner la solution, si non y a t’il un autre moyen ?

      Merci d’avance à tous et bonne soirée 🙂

      1 Reply Last reply Reply Quote 0
      • Phenix246
        Phenix246 Rédacteurs last edited by

        Même principe que pour les blocs : ```java
        private String[] type = new String[]{“item1”, “item2”, “item3”, “item4”};

        
        Bien Sûr les .blockID ont disparus, même ça ne change rien au système (le changement du système de metadata c'est en 1.8)
        1 Reply Last reply Reply Quote 0
        • Polygon48
          Polygon48 last edited by

          @‘Phenix246’:

          Même principe que pour les blocs :

          private String[] type = new String[]{"item1", "item2", "item3", "item4"};
          

          Bien Sûr les .blockID ont disparus, même ça ne change rien au système (le changement du système de metadata c’est en 1.8)

          Merci je vais tester tous ça ! 🙂
          Je reviens ici si j’ai un autre problème, merci encore !

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

            @‘Phenix246’:

            Même principe que pour les blocs :

            private String[] type = new String[]{"item1", "item2", "item3", "item4"};
            

            Bien Sûr les .blockID ont disparus, même ça ne change rien au système (le changement du système de metadata c’est en 1.8)

            De retour, après avoir placé le tableau et essayer plusieurs fois plusieurs choses pour éviter de revenir ici et d’encore embêter je n’y arrive pas, je ne sais pas comment il faut faire, n’aurais tu pas un tutoriel ou autre ?

            Merci pour ta patience 🙂

            1 Reply Last reply Reply Quote 0
            • Phenix246
              Phenix246 Rédacteurs last edited by

              envoie ton code je vais te l’arranger

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

                @‘Phenix246’:

                envoie ton code je vais te l’arranger

                    public static Item itemObsidian;
                
                @EventHandler
                
                    public void preInit(FMLPreInitializationEvent event)
                    {
                
                        //Obsidian ITEMS
                        itemObsidian = new itemObsidianMetadata().setUnlocalizedName("itemobsidian");
                        GameRegistry.registerItem(itemObsidian, "itemObsidian", "ObsidianPlus");
                

                Ici j’ai essayer d’utiliser le code de la 1.6 …

                Ensuite ma classe :

                
                package com.google.bidibusteam.obsidianplus.common;
                
                import javax.swing.Icon;
                
                import net.minecraft.creativetab.CreativeTabs;
                import net.minecraft.item.Item;
                import net.minecraft.item.ItemStack;
                
                public class itemObsidianMetadata extends Item
                {
                
                    public int getMetadata(int metadata)
                    {
                        return metadata;
                    }
                
                    public String getUnlocalizedName(ItemStack stack)
                    {
                        int metadata = stack.getItemDamage();
                        if(metadata > type.length || metadata < 0)
                        {
                            metadata = 0;
                        }
                        return super.getUnlocalizedName() + "." + type[metadata];
                    }
                
                    private String[] type = new String[]{"item1", "item2", "item3", "item4"};
                    private Icon[] IconArray;
                    public itemObsidianMetadata(int id)
                    {
                        super();
                        this.setCreativeTab(CreativeTabs.tabMaterials);
                        this.setHasSubtypes(true);
                    }
                
                    public void registerIcons(IconRegister iconregister)
                    {
                        IconArray = new Icon[type.length];
                        for(int i = 0; i < type.length; i++)
                        {
                            IconArray* = iconregister.registerIcon("modtutoriel:" + type*);
                        }
                    }
                
                    @SideOnly(Side.CLIENT)
                    public void getSubItems(int id, CreativeTabs creativeTabs, List list)
                    {
                        for(int metadata = 0; metadata < type.length; metadata++)
                        {
                            list.add(new ItemStack(id, 1, metadata));
                        }
                    }
                
                    @SideOnly(Side.CLIENT)
                    public Icon getIconFromDamage(int metadata)
                    {
                        return metadata < type.length && metadata >= 0 ? IconArray[metadata] : IconArray[0];
                    }
                
                }
                
                

                Ici pareil, un peu de 1.6 mais plein d’erreur car le code et faux en lui même je pense et non finis …

                1 Reply Last reply Reply Quote 0
                • Phenix246
                  Phenix246 Rédacteurs last edited by

                  package com.google.bidibusteam.obsidianplus.common;
                  
                  import net.minecraft.util.IIcon;
                  
                  import net.minecraft.creativetab.CreativeTabs;
                  import net.minecraft.item.Item;
                  import net.minecraft.item.ItemStack;
                  
                  public class itemObsidianMetadata extends Item
                  {
                     private String[] type = new String[]{"item1", "item2", "item3", "item4"};
                     private IIcon[] iconArray;
                  
                     public itemObsidianMetadata()
                     {
                         super();
                         this.setCreativeTab(CreativeTabs.tabMaterials);
                         this.setHasSubtypes(true);
                     }
                  
                     public int getMetadata(int metadata)
                     {
                         return metadata;
                     }
                  
                     public String getUnlocalizedName(ItemStack stack)
                     {
                         int metadata = stack.getItemDamage();
                         if(metadata > type.length || metadata < 0)
                         {
                             metadata = 0;
                         }
                         return super.getUnlocalizedName() + "." + type[metadata];
                     }
                  
                     public void registerIcons(IIconRegister iconregister)
                     {
                         iconArray = new Icon[type.length];
                         for(int i = 0; i < type.length; i++)
                         {
                             iconArray* = iconregister.registerIcon("modtutoriel:" + type*);
                         }
                     }
                  
                  @SideOnly(Side.CLIENT)
                  public void getSubItems(Item Item, CreativeTabs creativeTabs, List list)
                  {
                  for(int metadata = 0; metadata < type.length; metadata++)
                  list.add(new ItemStack(Item, 1, metadata));
                  }
                  
                     @SideOnly(Side.CLIENT)
                     public IIcon getIconFromDamage(int metadata)
                     {
                         return metadata < type.length && metadata >= 0 ? iconArray[metadata] : iconArray[0];
                     }
                  }
                  

                  Normalement là c’est bon ,oublie pas par contre d’utiliser la balise [java], ça rend le code plus facile à lire

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

                    @‘Phenix246’:

                    package com.google.bidibusteam.obsidianplus.common;
                    
                    import javax.swing.Icon;
                    
                    import net.minecraft.creativetab.CreativeTabs;
                    import net.minecraft.item.Item;
                    import net.minecraft.item.ItemStack;
                    
                    public class itemObsidianMetadata extends Item
                    {
                       private String[] type = new String[]{"item1", "item2", "item3", "item4"};
                       private Icon[] iconArray;
                    
                       public itemObsidianMetadata()
                       {
                           super();
                           this.setCreativeTab(CreativeTabs.tabMaterials);
                           this.setHasSubtypes(true);
                       }
                    
                       public int getMetadata(int metadata)
                       {
                           return metadata;
                       }
                    
                       public String getUnlocalizedName(ItemStack stack)
                       {
                           int metadata = stack.getItemDamage();
                           if(metadata > type.length || metadata < 0)
                           {
                               metadata = 0;
                           }
                           return super.getUnlocalizedName() + "." + type[metadata];
                       }
                    
                       public void registerIcons(IconRegister iconregister)
                       {
                           iconArray = new Icon[type.length];
                           for(int i = 0; i < type.length; i++)
                           {
                               iconArray* = iconregister.registerIcon("modtutoriel:" + type*);
                           }
                       }
                    
                    @SideOnly(Side.CLIENT)
                    public void getSubItems(Item Item, CreativeTabs creativeTabs, List list)
                    {
                    for(int metadata = 0; metadata < type.length; metadata++)
                    list.add(new ItemStack(Item, 1, metadata));
                    }
                    
                       @SideOnly(Side.CLIENT)
                       public Icon getIconFromDamage(int metadata)
                       {
                           return metadata < type.length && metadata >= 0 ? iconArray[metadata] : iconArray[0];
                       }
                    }
                    

                    Normalement là c’est bon ,oublie pas par contre d’utiliser la balise

                    , ça rend le code plus facile à lire
                    
                    
                    Oui oui pas de problème !
                    Un grand merci à toi !
                    Au niveau de ma classe principale par contre j'utilise quel code ?
                    
                    
                    1 Reply Last reply Reply Quote 0
                    • Phenix246
                      Phenix246 Rédacteurs last edited by

                      normalement le tien est bon

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

                        @‘Phenix246’:

                        normalement le tien est bon

                        Par contre j’ai quelques erreurs ici :

                            @SideOnly(Side.CLIENT)
                        
                            public Icon getIconFromDamage(int metadata)
                            {
                                return metadata < type.length && metadata >= 0 ? iconArray[metadata] : iconArray[0];
                            }
                        

                        Au Icon et ici aussi :

                            public void registerIcons(IconRegister iconregister)
                        
                            {
                                iconArray = new Icon[type.length];
                                for(int i = 0; i < type.length; i++)
                                {
                                    iconArray* = iconregister.registerIcon("modtutoriel:" + type*);
                                }
                            }
                        

                        Au niveau du IconRegister, peut être que le code à changer en 1.7 ?

                        1 Reply Last reply Reply Quote 0
                        • Phenix246
                          Phenix246 Rédacteurs last edited by

                          en 1.7 Icon devient IIcon

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

                            @‘Phenix246’:

                            en 1.7 Icon devient IIcon

                            Oui mais du coup ici en changeant Icon par IIcon tout le code devient faux 😞 :

                            ​iconArray* = iconregister.registerIcon("obsidianplus:" + type*);
                            

                            Idem en bas :

                            ​ return metadata < type.length && metadata >= 0 ? iconArray[metadata] : iconArray[0];
                            
                            1 Reply Last reply Reply Quote 0
                            • robin4002
                              robin4002 Administrateurs Rédacteurs Moddeurs confirmés last edited by

                              Il faut remplacer seulement les références  à l’objet Icon, pas tout ce qui contient Icon …
                              Tu devrais apprendre le java, ça va t’aider à comprendre ce que tu fais.

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

                                @‘robin4002’:

                                Il faut remplacer seulement les références  à l’objet Icon, pas tout ce qui contient Icon …
                                Tu devrais apprendre le java, ça va t’aider à comprendre ce que tu fais.

                                Okay, merci 😉
                                Yeap c’est ce que je comptais faire 🙂

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

                                MINECRAFT FORGE FRANCE © 2018

                                Powered by NodeBB