MFF

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

    >Transformation Item -> Block

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    29 Messages 4 Publieurs 6.3k 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.
    • SnykerS Hors-ligne
      Snyker
      dernière édition par

      Oui juste ça ^^

      Aucune signature n'est disponible pour une barre chocolatée.

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

        @‘iFuSion34’:

        Oui juste ça ^^

        Au pire tu fais un item et avec la fonction onItemUse (je crois qu’elle s’appelle comme ça) tu poses un block (setBlock) avec les bons coordonnées. Perso je trouve cette méthode plus facile que créer un ItemBlock custom ^^

        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

          Oui donc dans ce cas je t’ai donné ce que tu cherchais :
          @‘robin4002’:

          https://github.com/FFMT/nanotech_mod/blob/master/common/fr/mcnanotech/kevin_68/nanotechmod/city/blocks/ItemBlockLamp.java#L21-L45
          Tu as juste besoin de ça. Pour enregistrer l’itemBloc, regarde le tutoriel sur le bloc avec metadata

          Au cas ou tu n’aurai pas trouvé, c’est juste la même ligne d’enregistrement sauf qu’il faut préciser l’item bloc en plus :
          GameRegistry.registerBlock(instance, classDeLitemBloc.class, “nom”);

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

            Franchement j’ai suivie le github à la lettre, fait ce que vous avez dit , j’y arrive pas.

            Je retenterai demain.

            Aucune signature n'est disponible pour une barre chocolatée.

            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

              Envoie ton code.

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

                Désolé pour le retard

                Ma classe Main :

                package fr.minefus.main.common;
                
                import net.minecraft.block.Block;
                import net.minecraft.block.material.Material;
                import net.minecraft.creativetab.CreativeTabs;
                import net.minecraft.init.Blocks;
                import net.minecraft.init.Items;
                import net.minecraft.item.Item;
                import net.minecraft.item.ItemBlock;
                import net.minecraft.item.ItemStack;
                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.minefus.main.proxy.CommonProxy;
                import fr.minefus.ressources.*;
                import net.minecraftforge.common.util.EnumHelper;
                
                @Mod(modid = "ressources", version = "1.0.0", name = "Minefus | Ressources")
                
                public class Main {
                
                public static final String MODID = "ressources";
                
                //Publication
                public static Item tabressourcesres, i_orme;
                public static Block orme;
                
                @Instance("Ressources")
                public static Main instance;
                
                @SidedProxy(clientSide = "fr.minefus.main.proxy.ClientProxy", serverSide = "fr.minefus.main.proxy.CommonProxy")
                public static CommonProxy proxy;
                
                @EventHandler
                public void preInit(FMLPreInitializationEvent event){
                
                //Déclaration
                tabressourcesres = new ressources().setUnlocalizedName("tab_ressources_res").setTextureName(MODID + ":tab_ressources_res");
                orme = new orme(Material.wood).setCreativeTab(CreativeTabs.tabBlock);
                i_orme = new i_orme(orme).setUnlocalizedName("item_orme").setTextureName(MODID + ":bois_orme").setCreativeTab(RessourceTab);
                
                }
                
                @EventHandler
                public void init(FMLInitializationEvent event){
                proxy.registerRender();
                
                //Même en faisant RegisterItemBlock il me le souligne en rouge en disant que je doit changer par Block ou Item
                GameRegistry.registerBlock(orme, "orme");
                GameRegistry.registerItem(i_orme,/* Ne marche pas : orme, */"i_orme");
                GameRegistry.registerItem(tabressourcesres, "tab_ressources_res");
                }
                
                @EventHandler
                public void postInit(FMLPostInitializationEvent event){}
                
                public static CreativeTabs RessourceTab = new CreativeTabs("RessourceTab"){
                @Override
                public Item getTabIconItem(){
                
                return new ItemStack(tabressourcesres).getItem();
                }
                };
                
                }
                

                Ma classe Block Orme :

                package fr.minefus.ressources;
                
                import java.util.Random;
                
                import cpw.mods.fml.relauncher.Side;
                import cpw.mods.fml.relauncher.SideOnly;
                import fr.minefus.main.common.Main;
                import net.minecraft.block.Block;
                import net.minecraft.block.material.Material;
                import net.minecraft.client.renderer.texture.IIconRegister;
                import net.minecraft.item.Item;
                import net.minecraft.item.ItemBlock;
                import net.minecraft.util.IIcon;
                import net.minecraft.world.World;
                
                public class orme extends Block {
                
                public orme(Material material) {
                super(material);
                // TODO Auto-generated constructor stub
                }
                
                private IIcon top;
                
                public void registerBlockIcons(IIconRegister iiconRegister){
                this.blockIcon = iiconRegister.registerIcon(Main.MODID + ":log_orme");
                this.top = iiconRegister.registerIcon(Main.MODID + ":log_orme_top");
                }
                
                public IIcon getIcon(int side, int metadata){
                
                if(side == 0 || side == 1){
                   return this.top;
                }
                return this.blockIcon;
                }
                
                }
                

                Ma classe Item i_Orme :

                package fr.minefus.ressources;
                
                import cpw.mods.fml.relauncher.Side;
                import cpw.mods.fml.relauncher.SideOnly;
                import fr.minefus.main.common.Main;
                import net.minecraft.block.Block;
                import net.minecraft.client.renderer.texture.IIconRegister;
                import net.minecraft.item.Item;
                import net.minecraft.item.ItemBlock;
                import net.minecraft.util.IIcon;
                
                public class i_orme extends ItemBlock{
                
                public i_orme(Block material) {
                super(material);
                // TODO Auto-generated constructor stub
                }
                
                private IIcon itemBlockIcon;
                
                @SideOnly(Side.CLIENT)
                public int getSpriteNumer()
                {
                return 1;
                }
                
                @SideOnly(Side.CLIENT)
                public IIcon getIconFromDamage(int metadata){
                return itemBlockIcon;
                }
                
                public void registerIcons(IIconRegister iiconRegister){
                itemBlockIcon = iiconRegister.registerIcon("ressources:bois_orme");
                }
                
                @SideOnly(Side.CLIENT)
                   public String getItemIconName()
                   {
                       return Main.MODID+":bois_orme";
                   }
                
                }
                

                Julo je ne suis pas assez experimenté pour faire ce que tu dit en 2 phrases x)

                Aucune signature n'est disponible pour une barre chocolatée.

                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

                  public static Item tabressourcesres, i_orme;
                  ->     public static Item tabressourcesres;
                          GameRegistry.registerItem(i_orme,/* Ne marche pas : orme, */“i_orme”);
                  -> supprime.
                              i_orme = new i_orme(orme).setUnlocalizedName(“item_orme”).setTextureName(MODID + “:bois_orme”).setCreativeTab(RessourceTab);
                  -> supprime
                          GameRegistry.registerBlock(orme, “orme”);
                  ->
                          GameRegistry.registerBlock(orme, i_orme.class, “orme”);

                  Et un peu de convention Java, les noms de classes commencent toujours par des majuscules. Les conventions de nommage c’est comme l’orthographe : ça rend plus lisible, on sait tout ce suite de quoi on parle.
                  Si on se met à écrire “sait” tout le temps au lieu de “c’est / s’est / sait” en fonction des cas, on est obligé de lire toute la phrase pour savoir de quel verbe il s’agit.
                  En programmation c’est pareil, si tu nommes tout comme tu veux, on est obliger de retourner à la déclaration et de lire ce qu’il y avant (public class, public int, etc …) alors que si tu le nomme bien NomDeMaClasse on voit de un que c’est une classe, et en plus on différencie rapidement les différents mots. Pareil avec les variables, monInt, on voit toute de suite que c’est une variable et pour MON_INT on voit tout de suite que c’est une constante, pas besoin de retourner voir la déclaration pour voir le public static final.

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

                    Bonsoir,

                    J’ai testé ton code , tout démarre , juste que quand je casse le bois , j’ai le bois en bloc , et dans la main la texture de l’item n’existe plus et n’ai pas pris en compte , donc j’ai un Block -> Block -> Block
                    et non Item -> Block -> Block ( ou Item )

                    :anniv: Robin

                    Aucune signature n'est disponible pour une barre chocolatée.

                    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

                      What ?
                      Fait un screen du problème, car c’est très étrange x)

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

                        Bonsoir , désolé de l’attente de la réponse.

                        Merci mais ça ma saouler , j’ai laisser tomber , je l’ai supprimer , donc en soit je verrai plus une prochaine fois dans longtemps.

                        (Vue que je l’ai supprimé screen détaillé : )
                        Quand j’ouvrai mon tab , j’allais dans mes block , je voyais la texture du bloc et non la texture de l’item , quand je poser le bloc c’était un block quoi de plus normal , et quand je le cassais ça me redonner le block.

                        En tout cas merci pour votre aide 🙂

                        Aucune signature n'est disponible pour une barre chocolatée.

                        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

                          Ce que je t’ai donné est pourtant bon, je ne sais pas ce que tu as fait …

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

                            Je viens de récupérer le code au dessus , est effectivement j’ai toujours le même problème.
                            Image :
                            Il faut cliquer ici

                            Ps: je répondrai demain je vais au lit. bonne nuit

                            Aucune signature n'est disponible pour une barre chocolatée.

                            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

                              Renvoie ton code, classe principale + item bloc

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

                                Main :

                                package fr.minefus.main.common;
                                
                                import fr.minefus.ressources.*;
                                import net.minecraft.block.Block;
                                import net.minecraft.block.material.Material;
                                import net.minecraft.creativetab.CreativeTabs;
                                import net.minecraft.item.Item;
                                import net.minecraft.item.ItemStack;
                                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 cpw.mods.fml.relauncher.Side;
                                import cpw.mods.fml.relauncher.SideOnly;
                                import fr.minefus.main.proxy.CommonProxy;
                                
                                @Mod(modid = "ressources", version = "1.0.0", name = "Minefus | Ressources")
                                
                                public class Main {
                                
                                public static final String MODID = "ressources";
                                //Publication
                                public static Block log_orme;
                                public static Item tabressourcesres, tabconsores;
                                
                                @Instance("Ressources")
                                public static Main instance;
                                
                                @SidedProxy(clientSide = "fr.minefus.main.proxy.ClientProxy", serverSide = "fr.minefus.main.proxy.CommonProxy")
                                public static CommonProxy proxy;
                                
                                @EventHandler
                                public void preInit(FMLPreInitializationEvent event){
                                
                                //Declaration
                                log_orme = new LogOrme(Material.rock).setCreativeTab(CreativeTabs.tabBlock).setBlockName("logorme");
                                
                                tabconsores = new ressources().setUnlocalizedName("tab_conso_res").setTextureName(MODID + ":tab_conso_res");
                                tabressourcesres = new ressources().setUnlocalizedName("tab_ressources_res").setTextureName(MODID + ":tab_ressources_res");
                                }
                                
                                @EventHandler
                                public void init(FMLInitializationEvent event){
                                
                                proxy.registerRender();
                                
                                GameRegistry.registerBlock(log_orme, ItemOrme.class, "log_orme");
                                
                                GameRegistry.registerItem(tabressourcesres, "tab_ressources_res");
                                GameRegistry.registerItem(tabconsores, "tab_conso_res");
                                
                                }
                                
                                @EventHandler
                                public void postInit(FMLPostInitializationEvent event){
                                }
                                
                                public static CreativeTabs RessourceTab = new CreativeTabs("Ressources"){
                                
                                @SideOnly(Side.CLIENT)
                                @Override
                                public Item getTabIconItem(){
                                
                                return new ItemStack(tabressourcesres).getItem();
                                }
                                
                                @Override
                                public boolean hasSearchBar()
                                {
                                return true;
                                }
                                
                                @Override
                                public int getSearchbarWidth()
                                {
                                return 89;
                                }
                                };
                                
                                public static CreativeTabs ConsoTab = new CreativeTabs("Consommables"){
                                
                                @SideOnly(Side.CLIENT)
                                @Override
                                public Item getTabIconItem(){
                                
                                return new ItemStack(tabconsores).getItem();
                                }
                                
                                @Override
                                public boolean hasSearchBar()
                                {
                                return true;
                                }
                                
                                @Override
                                public int getSearchbarWidth()
                                {
                                return 89;
                                }
                                };
                                
                                }
                                
                                

                                Ma classe LogOrme ( Block ) :

                                package fr.minefus.ressources;
                                
                                import fr.minefus.main.common.Main;
                                import net.minecraft.block.Block;
                                import net.minecraft.block.material.Material;
                                import net.minecraft.client.renderer.texture.IIconRegister;
                                import net.minecraft.util.IIcon;
                                
                                public class LogOrme extends Block{
                                
                                public LogOrme(Material material) {
                                super(material);
                                }
                                
                                private IIcon top;
                                
                                public void registerBlockIcons(IIconRegister iiconRegister){
                                this.blockIcon = iiconRegister.registerIcon(Main.MODID + ":log_orme");
                                this.top = iiconRegister.registerIcon(Main.MODID + ":log_orme_top");
                                }
                                
                                public IIcon getIcon(int side, int metadata){
                                
                                if(side == 0 || side == 1){
                                return this.top;
                                }
                                return this.blockIcon;
                                }
                                
                                }
                                

                                Ma classe ItemOrme ( Item , qui est normalement la texture du block )

                                package fr.minefus.ressources;
                                
                                import cpw.mods.fml.relauncher.Side;
                                import cpw.mods.fml.relauncher.SideOnly;
                                import fr.minefus.main.common.Main;
                                import net.minecraft.block.Block;
                                import net.minecraft.client.renderer.texture.IIconRegister;
                                import net.minecraft.item.ItemBlock;
                                import net.minecraft.util.IIcon;
                                
                                public class ItemOrme extends ItemBlock{
                                
                                public ItemOrme(Block block) {
                                super(block);
                                // TODO Auto-generated constructor stub
                                }
                                
                                private IIcon itemBlockIcon;
                                
                                @SideOnly(Side.CLIENT)
                                public int getSpriteNumer()
                                {
                                return 1;
                                }
                                
                                @SideOnly(Side.CLIENT)
                                public IIcon getIconFromDamage(int metadata){
                                return itemBlockIcon;
                                }
                                
                                public void registerIcons(IIconRegister iiconRegister){
                                itemBlockIcon = iiconRegister.registerIcon(Main.MODID + ":bois_orme");
                                }
                                
                                @SideOnly(Side.CLIENT)
                                public String getItemIconName()
                                {
                                return "ressources:bois_orme";
                                }
                                }
                                
                                

                                Aucune signature n'est disponible pour une barre chocolatée.

                                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

                                  @SideOnly(Side.CLIENT)

                                  public String getItemIconName()
                                      {
                                          return “ressources:bois_orme”;
                                      }
                                  Pourquoi tu as mit cette fonction ?
                                  C’est étrange car tout le reste est bon …
                                  Sinon envoie moi un zip de ton dossier src.

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

                                    Oui , je t’envoie ça , ce qui est le plus étrange, c’est que j’ai recrée un Dossier Mod , j’ai fait tout pareil , sauf que la il me détecte pas les textures dans le dossier , alors que dans la console il me dit bien la redirection , est c’est exactement les mêmes que mes dossiers nommés. O_o

                                    Aucune signature n'est disponible pour une barre chocolatée.

                                    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


                                      J’ai trouvé le problème.
                                      Dans la classe de l’item bloc, tu as mit :

                                      ​    public int getSpriteNumer()
                                      

                                      au lieu de :

                                      ​    public int getSpriteNumber()
                                      
                                      1 réponse Dernière réponse Répondre Citer 0
                                      • SnykerS Hors-ligne
                                        Snyker
                                        dernière édition par

                                        Heu c’est pareil x)

                                        Aucune signature n'est disponible pour une barre chocolatée.

                                        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

                                          ? ça fonctionne très bien chez moi pourtant

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

                                            Tu as mis deux fois :
                                               public int getSpriteNumer()

                                            et pas la suite , du coup je peux pas savoir x)

                                            Edit : Non ok je viens de voir - -’
                                            Edit 2 : Merci beaucoup Robin pour ton aide , désolé d’avoir fait cette erreur stupide - -'. Cela marche maintenant.

                                            Aucune signature n'est disponible pour une barre chocolatée.

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB