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

    Résolu >Transformation Item -> Block

    1.7.x
    1.7.10
    4
    29
    5628
    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.
    • Snyker
      Snyker dernière édition par

      Bonjour , mon problème étant que je ne trouve pas comment poser un block à partir d’un item.

      C’est à dire : j’ai ma texture en item qui ressemble à un bois ( beaucoup mieux texture que le block ) et je souhaite en faisant clique droit qu’il me pose le block.
      J’ai chercher dans les séctions voir si il n’y avais pas ce Tuto , mais je n’ai pas trouver. (ou alors je voie très mal )

      Code de mon block :

      public class orme extends Block {
      
      public orme(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;
      }
      
      }
      

      Class de mon Item :

      public class item_orme extends Item{
      
      }
      

      Si vous pouvez m’indiquer une séction , me donner de l’aide je prend avec plaisir :).

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

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

        regarde la classe du lit.

        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
        • Snyker
          Snyker dernière édition par

          Comment pourrait-je la voir ?
          Edit : J’ai trouvé la class

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

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

            Franchement j’ai beau chercher , dans la class Bed je n’arrive pas à récupérer mon Item en texture.

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

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

              What ?
              Pourquoi tu veux faire ça comme ça ?
              Suffit juste d’avoir le bloc … Pas besoin d’un item en plus.
              Si tu veux juste avoir une texture qui s’affiche comme un item dans l’inventaire, il faut passer par l’ItemBlock associé au bloc …

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

                J’apprend , mais je vais essayé ce que tu as dit.

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

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

                  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

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

                    Je n’ai pas réussi , du coup Sosoh m’aide ,

                    ce que je comptait faire était :
                    Item en main ( Comme un steak par exemple ) et quand ont fait clique droit , cela pose un Block ( comme de la Stone ).

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

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

                      J’avais comprit. Mais ce que tu veux au final c’est juste un bloc avec le rendu d’un item dans l’inventaire, non ?

                      1 réponse Dernière réponse Répondre Citer 0
                      • Snyker
                        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
                        • Deleted
                          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
                          • robin4002
                            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
                            • Snyker
                              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
                              • robin4002
                                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
                                • Snyker
                                  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
                                  • robin4002
                                    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
                                    • Snyker
                                      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
                                      • robin4002
                                        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
                                        • Snyker
                                          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
                                          • robin4002
                                            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
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            Contact / Mentions Légales

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB