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

Résolu Bloc Orientable (TileEntity)

1.8.x
1.8
6
71
14.9k
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.
  • Eryah
    Eryah dernière édition par 9 juin 2015, 10:32

    Bonjour, je me présente, Eryah, moddeur qui poste 4 topics tous les jours, tellement il est nul
    Donc, mon platecrafter à enfin sa texture, mais par contre, il n’est pas orrientable. J’ai donc voulu le rendre orientable. J’ai regarder le tuto… Et dès la 1er ligne, je vois que le code utilise les TileEntity. Or, les TileEntity ne sont plus utiles en 1.8
    J’aurai donc besoin d’aide pour rendre mon bloc orientable.
    Voici le code du bloc, si vous le voulez

    package eryah.usefulthings.blocks;
    import javax.swing.Icon;
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.resources.model.ModelResourceLocation;
    import net.minecraft.entity.EntityLivingBase;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.tileentity.TileEntity;
    import net.minecraft.util.MathHelper;
    import net.minecraft.world.World;
    import net.minecraftforge.fml.common.registry.GameRegistry;
    import net.minecraftforge.fml.relauncher.Side;
    import net.minecraftforge.fml.relauncher.SideOnly;
    import eryah.usefulthings.Reference;
    import eryah.usefulthings.UsefulthingsMod;
    public class PlateCrafter extends Block {
    public static Block platecrafter;
    public static void init()
    {
    platecrafter = new ResinLog(Material.wood).setUnlocalizedName("platecrafter").setCreativeTab(UsefulthingsMod.UTTab);
    }
    protected PlateCrafter(Material materialIn) {
    super(materialIn);
    // TODO Auto-generated constructor stub
    }
    public static void register()
    {
    GameRegistry.registerBlock(platecrafter, platecrafter.getUnlocalizedName().substring(5));
    }
    public static void registerRenders()
    {
    registerRender(platecrafter);
    }
    public static void registerRender(Block block)
    {
    Item item = Item.getItemFromBlock(block);
    Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory"));
    }
    }
    public static void registerRender(Block block)
    {
    Item item = Item.getItemFromBlock(block);
    Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory"));
    }
    }

    Membre fantôme
    Je développe maintenant un jeu sur UnrealEngine4


    Contact :…

    1 réponse Dernière réponse Répondre Citer 0
    • SCAREX
      SCAREX dernière édition par 9 juin 2015, 15:32

      Les TileEntity sont encore utilisées en 1.8 il me semble, en revanche il est conseillé d’utiliser les BlockState, regarde les classes de minecraft, quel type de donnée veux-tu enregistrer ?

      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
      • Eryah
        Eryah dernière édition par 9 juin 2015, 15:44

        je comprends pas a à 100% ta question ( oui, je suis assez pourri pour aps comprendre )
        Mais si c’est cela que tu demande, mon bloc est en blockstates ( .json )

        Membre fantôme
        Je développe maintenant un jeu sur UnrealEngine4


        Contact :…

        1 réponse Dernière réponse Répondre Citer 0
        • SCAREX
          SCAREX dernière édition par 9 juin 2015, 15:50

          La question est : pourquoi as-tu besoin d’une TileEntity ?

          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
          • Eryah
            Eryah dernière édition par 9 juin 2015, 15:53

            Je n’en n’est pas besoin, le tuto ( http://www.minecraftforgefrance.fr/showthread.php?tid=1304 ) utilise, en gros , la rotation d’une TileEntity, or, je n’utilise pas une TileEntity, mais un .json

            Membre fantôme
            Je développe maintenant un jeu sur UnrealEngine4


            Contact :…

            1 réponse Dernière réponse Répondre Citer 0
            • SCAREX
              SCAREX dernière édition par 9 juin 2015, 16:03

              Ah oui, j’avais oublié le titre… Il faut regarder les classes de minecraft avant de demander de l’aide :

              1. Mets ton block extend BlockDirectional
              2. Dans le constructeur, ajoutes ceci :
                this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
                
              3. Ré-écris la fonction onBlockPlaced et rajoutes ceci dedans :
                return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite());
                
              4. Ré-écris la fonction getStateFromMeta si tu veux utiliser les metadatas pour orienter ton block
                return ((EnumFacing)state.getValue(FACING)).getHorizontalIndex();
                
              5. Ré-écris la fonction createBlockState
                return new BlockState(this, new IProperty[] {FACING});
                

              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
              • Eryah
                Eryah dernière édition par 9 juin 2015, 16:07

                Euh… Je ne vois aps du tout de quoi tu veut parler par :
                [size=x-smallRé-écris la fonction onBlockPlaced et rajoutes ceci dedans :]
                ~~[size=x-smallRé-écris la fonction getStateFromMeta si tu veux utiliser les metadatas pour orienter ton block]
                ~~[size=x-smallRé-écris la fonction createBlockState]
                [size=small~~J’ai peut-etre , dans ma puissance naturelle, mal codé mon bloc donc , voici ma classe  ~~   C’EST BON J’AI COMPRIS]

                package eryah.usefulthings.blocks;
                
                import javax.swing.Icon;
                
                import net.minecraft.block.Block;
                import net.minecraft.block.BlockDirectional;
                import net.minecraft.block.material.Material;
                import net.minecraft.client.Minecraft;
                import net.minecraft.client.resources.model.ModelResourceLocation;
                import net.minecraft.entity.EntityLivingBase;
                import net.minecraft.item.Item;
                import net.minecraft.item.ItemStack;
                import net.minecraft.util.EnumFacing;
                import net.minecraft.util.MathHelper;
                import net.minecraft.world.World;
                import net.minecraftforge.fml.common.registry.GameRegistry;
                import net.minecraftforge.fml.relauncher.Side;
                import net.minecraftforge.fml.relauncher.SideOnly;
                import eryah.usefulthings.Reference;
                import eryah.usefulthings.UsefulthingsMod;
                
                public class PlateCrafter extends BlockDirectional {
                
                public static Block platecrafter; {
                this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
                
                }
                
                public static void init()
                {
                platecrafter = new ResinLog(Material.wood).setUnlocalizedName("platecrafter").setCreativeTab(UsefulthingsMod.UTTab);
                }
                
                protected PlateCrafter(Material materialIn) {
                super(materialIn);
                // TODO Auto-generated constructor stub
                }
                
                public static void register()
                {
                GameRegistry.registerBlock(platecrafter, platecrafter.getUnlocalizedName().substring(5));
                }
                
                public static void registerRenders()
                {
                registerRender(platecrafter);
                }
                
                public static void registerRender(Block block)
                {
                Item item = Item.getItemFromBlock(block);
                Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory"));
                }
                
                }
                
                ```~~~~

                Membre fantôme
                Je développe maintenant un jeu sur UnrealEngine4


                Contact :…

                1 réponse Dernière réponse Répondre Citer 0
                • SCAREX
                  SCAREX dernière édition par 9 juin 2015, 16:10

                  Quel est ce morceau de code tout seul au milieu de nulle part ?

                  public static Block platecrafter; {
                  this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
                  }

                  Il faut le mettre dans le constructeur et il te manque toutes les méthodes que j’ai cité précédemment.

                  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
                  • Eryah
                    Eryah dernière édition par 9 juin 2015, 16:16

                    Une erreur sur

                    @Override
                    public IBlockState getStateFromMeta(int meta) {
                    return ((EnumFacing)blockState.getValue(FACING)).getHorizontalIndex();
                    }

                    ((EnumFacing)blockState.getValue(FACING)).getHorizontalIndex();
                         *Multiple markers at this line
                    *

                      • Type mismatch: cannot convert from int to *
                        IBlockState
                        Il me propose de ajouter ‘int’ et après, y’a un erreur sur int, enfin… plein d’erreurs qui forment un boucle

                    Membre fantôme
                    Je développe maintenant un jeu sur UnrealEngine4


                    Contact :…

                    1 réponse Dernière réponse Répondre Citer 0
                    • Eryah
                      Eryah dernière édition par 9 juin 2015, 16:18

                      @‘SCAREX’:

                      Quel est ce morceau de code tout seul au milieu de nulle part ?

                      public static Block platecrafter; {
                             this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
                             
                         }

                      Il faut le mettre dans le constructeur et il te manque toutes les méthodes que j’ai cité précédemment.

                      Dès que je l’enlève, il y a des erreurs partout, je dirait 1 toutes les 4 lignes

                      Et je n’avais pas compris comment ajouter les méthodes quand j’ai posté le message

                      Membre fantôme
                      Je développe maintenant un jeu sur UnrealEngine4


                      Contact :…

                      1 réponse Dernière réponse Répondre Citer 0
                      • SCAREX
                        SCAREX dernière édition par 9 juin 2015, 16:22

                        Regarde la classe de la pumpkin, car là j’en peux plus…

                        this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
                        

                        CECI VA DANS LE CONSTRUCTEUR ! Si tu ne sait pas ce qu’est un constructeur : OpenClassrooms

                        Pour les autres lignes de code, voici le code à rajouter :

                        public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
                        {
                        return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite());
                        }
                        public IBlockState getStateFromMeta(int meta)
                        {
                        return this.getDefaultState().withProperty(FACING, EnumFacing.getHorizontal(meta));
                        }
                        public int getMetaFromState(IBlockState state)
                        {
                        return ((EnumFacing)state.getValue(FACING)).getHorizontalIndex();
                        }
                        protected BlockState createBlockState()
                        {
                        return new BlockState(this, new IProperty[] {FACING});
                        }

                        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
                        • Eryah
                          Eryah dernière édition par 9 juin 2015, 16:42

                          Implicit super constructor BlockDirectional() is undefined. Must explicitly invoke another constructor
                          quand je mets le curseur sur

                          public static PlateCrafter() {
                          this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
                          }

                          PlateCrafter()

                          Ce que j’avais avant était un constructeur, mais il avait (je ne sais aps pourquoi, mauvais copier coller de ma part ( oui je fais les blocs comme ça )) ‘Block’ en trop

                          Membre fantôme
                          Je développe maintenant un jeu sur UnrealEngine4


                          Contact :…

                          1 réponse Dernière réponse Répondre Citer 0
                          • SCAREX
                            SCAREX dernière édition par 9 juin 2015, 16:50

                            le constructeur ne devrait pas être statique. Quel est ton code en ce moment ?

                            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
                            • Eryah
                              Eryah dernière édition par 9 juin 2015, 16:51

                              package eryah.usefulthings.blocks;
                              import net.minecraft.block.Block;
                              import net.minecraft.block.BlockDirectional;
                              import net.minecraft.block.material.Material;
                              import net.minecraft.block.properties.IProperty;
                              import net.minecraft.block.state.BlockState;
                              import net.minecraft.block.state.IBlockState;
                              import net.minecraft.client.Minecraft;
                              import net.minecraft.client.resources.model.ModelResourceLocation;
                              import net.minecraft.entity.EntityLivingBase;
                              import net.minecraft.item.Item;
                              import net.minecraft.util.BlockPos;
                              import net.minecraft.util.EnumFacing;
                              import net.minecraft.world.World;
                              import net.minecraftforge.fml.common.registry.GameRegistry;
                              import eryah.usefulthings.Reference;
                              import eryah.usefulthings.UsefulthingsMod;
                              public class PlateCrafter extends BlockDirectional {
                              public static Block platecrafter; {
                                 }
                              public PlateCrafter() {
                              this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
                              }
                                 public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
                                 {
                                     return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite());
                                 }
                                 public IBlockState getStateFromMeta(int meta)
                                 {
                                     return this.getDefaultState().withProperty(FACING, EnumFacing.getHorizontal(meta));
                                 }
                                 public int getMetaFromState(IBlockState state)
                                 {
                                     return ((EnumFacing)state.getValue(FACING)).getHorizontalIndex();
                                 }
                                 protected BlockState createBlockState()
                                 {
                                     return new BlockState(this, new IProperty[] {FACING});
                                 }
                              public static void init()
                              {
                              platecrafter = new ResinLog(Material.wood).setUnlocalizedName("platecrafter").setCreativeTab(UsefulthingsMod.UTTab);
                              }
                              protected PlateCrafter(Material materialIn) {
                              super(materialIn);
                              // TODO Auto-generated constructor stub
                              }
                              public static void register()
                              {
                              GameRegistry.registerBlock(platecrafter, platecrafter.getUnlocalizedName().substring(5));
                              }
                              public static void registerRenders()
                              {
                              registerRender(platecrafter);
                              }
                              public static void registerRender(Block block)
                              {
                              Item item = Item.getItemFromBlock(block);
                              Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory"));
                              }
                              }

                              C’était un mauvais copier coller, dans mon tout premier bloc, le constructeur est présent ( y’a rien dedans, mais il est la )

                              Membre fantôme
                              Je développe maintenant un jeu sur UnrealEngine4


                              Contact :…

                              1 réponse Dernière réponse Répondre Citer 0
                              • SCAREX
                                SCAREX dernière édition par 9 juin 2015, 17:17

                                Ces crochets ne servent à rien :

                                public static Block platecrafter; {
                                }

                                Ton sujet est résolu ?

                                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
                                • Eryah
                                  Eryah dernière édition par 9 juin 2015, 17:19

                                  Y’a toujours la même erreur
                                  Multiple markers at this line

                                  • Illegal modifier for the constructor in type PlateCrafter; only public, protected & private are 
                                    permitted ( Pourtant c’est bien public PlateCrafter() )
                                  • Implicit super constructor BlockDirectional() is undefined. Must explicitly invoke another 
                                    constructor
                                    Sur Platecrafter()

                                  Membre fantôme
                                  Je développe maintenant un jeu sur UnrealEngine4


                                  Contact :…

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • SCAREX
                                    SCAREX dernière édition par 9 juin 2015, 17:22

                                    Tu as 2 constructeurs

                                    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
                                    • Eryah
                                      Eryah dernière édition par 9 juin 2015, 17:23

                                      Si j’en est 2, je ne voit aps le 2e

                                      package eryah.usefulthings.blocks;
                                      import net.minecraft.block.Block;
                                      import net.minecraft.block.BlockDirectional;
                                      import net.minecraft.block.material.Material;
                                      import net.minecraft.block.properties.IProperty;
                                      import net.minecraft.block.state.BlockState;
                                      import net.minecraft.block.state.IBlockState;
                                      import net.minecraft.client.Minecraft;
                                      import net.minecraft.client.resources.model.ModelResourceLocation;
                                      import net.minecraft.entity.EntityLivingBase;
                                      import net.minecraft.item.Item;
                                      import net.minecraft.util.BlockPos;
                                      import net.minecraft.util.EnumFacing;
                                      import net.minecraft.world.World;
                                      import net.minecraftforge.fml.common.registry.GameRegistry;
                                      import eryah.usefulthings.Reference;
                                      import eryah.usefulthings.UsefulthingsMod;
                                      public class PlateCrafter extends BlockDirectional {
                                      public static Block platecrafter;
                                      public PlateCrafter() {
                                      this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
                                      }
                                         public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
                                         {
                                             return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite());
                                         }
                                         public IBlockState getStateFromMeta(int meta)
                                         {
                                             return this.getDefaultState().withProperty(FACING, EnumFacing.getHorizontal(meta));
                                         }
                                         public int getMetaFromState(IBlockState state)
                                         {
                                             return ((EnumFacing)state.getValue(FACING)).getHorizontalIndex();
                                         }
                                         protected BlockState createBlockState()
                                         {
                                             return new BlockState(this, new IProperty[] {FACING});
                                         }
                                      public static void init()
                                      {
                                      platecrafter = new ResinLog(Material.wood).setUnlocalizedName("platecrafter").setCreativeTab(UsefulthingsMod.UTTab);
                                      }
                                      public static void register()
                                      {
                                      GameRegistry.registerBlock(platecrafter, platecrafter.getUnlocalizedName().substring(5));
                                      }
                                      public static void registerRenders()
                                      {
                                      registerRender(platecrafter);
                                      }
                                      public static void registerRender(Block block)
                                      {
                                      Item item = Item.getItemFromBlock(block);
                                      Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory"));
                                      }
                                      }

                                      Membre fantôme
                                      Je développe maintenant un jeu sur UnrealEngine4


                                      Contact :…

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • SCAREX
                                        SCAREX dernière édition par 9 juin 2015, 17:27

                                        Tu as supprimé le 2ème dans ce dernier code.

                                        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
                                        • Eryah
                                          Eryah dernière édition par 9 juin 2015, 17:27

                                          Oui, mais j’ai toujours le problème
                                          ( Mais pas tout à fait le même… Je l’avais au tout debut *Implicit super constructor BlockDirectional() is undefined. Must explicitly invoke another constructor *)

                                          Membre fantôme
                                          Je développe maintenant un jeu sur UnrealEngine4


                                          Contact :…

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • 1
                                          • 2
                                          • 3
                                          • 4
                                          • 1 / 4
                                          8 sur 71
                                          • Premier message
                                            8/71
                                            Dernier message
                                          Design by Woryk
                                          Contact / Mentions Légales

                                          MINECRAFT FORGE FRANCE © 2018

                                          Powered by NodeBB