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

    Résolu Transparence d'un bloc / Possibilité d'escalader un bloc

    1.8.x
    1.8
    5
    32
    4345
    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

      BOOON, 2 topics en 1jours….
      Bonjour, je me présente, Eryah. Je vais arrêter de présenter mon mod dès a présent. Je veut crer un bloc d’échafaudage, facile a crafter, destruction instantanée , et possiblité de grimper dessus. Je m’excuse de poster ce topic, car ej sais que plusieurs personnes ont déja poser cette question ( Comment rendre un bloc transparent )
      PROBLÈME 1

      Donc, comme dit plus haut, la texture est transparente, mais en rendu en jeu, la partie transparente est totalement blanche

      PROBLÈME 2

      Donc, comme dit plus haut également, j’aimerai que l’echaffaudage soit comme un échelle, qu’on puisse grimper dessus. Or, impossible de grimper sur l’echaffaudage 😞
      Pour trouver la ligne, j’ai trifouiller dans la .class de l’échelle. Je ne sais pas du tout si c’est bon la bonne ligne

      .JAVA DE L’ECHAFFAUDAGE

      package eryah.usefulthings.blocks;
      
      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.util.BlockPos;
      import net.minecraft.world.IBlockAccess;
      import net.minecraftforge.fml.common.registry.GameRegistry;
      import eryah.usefulthings.Reference;
      import eryah.usefulthings.UsefulthingsMod;
      
      public class Scaffolding {
      
      public static Block scaffolding;
      
      public static void init()
      {
      scaffolding = new ResinLog(Material.wood).setUnlocalizedName("scaffolding").setCreativeTab(UsefulthingsMod.UTTab);
      }
      
      public static void register()
      {
      GameRegistry.registerBlock(scaffolding, scaffolding.getUnlocalizedName().substring(5));
      }
      
      public static void registerRenders()
      {
      registerRender(scaffolding);
      }
      
      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 boolean isOpaqueCube()
         {
             return false;
         }
      
      public boolean isCollidable()
         {
             return false;
         }
      
      public boolean isLadder(IBlockAccess world, BlockPos pos, EntityLivingBase entity) { return true; }
      
      }
      
      

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


      Contact :…

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

        Pour la texture à mon avis tu ne doit pas l’avoir en transparence (Je parle du fond), pour le reste, je ne peux pas t’aider désolé 😕

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

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

          Pourtant, si elle est 100% transparente, enfin la partie qui doit l’être, l’est

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


          Contact :…

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

            Pour la transparence :

            ​    @SideOnly(Side.CLIENT)
            
                public EnumWorldBlockLayer getBlockLayer()
                {
                    return EnumWorldBlockLayer.CUTOUT;
                }
            

            Pour qu’on puisse y grimper à mon avis faudrait réduire légèrement la collision :

            public AxisAlignedBB getCollisionBoundingBox(World worldIn, BlockPos pos, IBlockState state)
            {
            this.setBlockBoundsBasedOnState(worldIn, pos);
            return super.getCollisionBoundingBox(worldIn, pos, state);
            }
            
            @SideOnly(Side.CLIENT)
            public AxisAlignedBB getSelectedBoundingBox(World worldIn, BlockPos pos)
            {
            this.setBlockBoundsBasedOnState(worldIn, pos);
            return super.getSelectedBoundingBox(worldIn, pos);
            }
            
            public void setBlockBoundsBasedOnState(IBlockAccess worldIn, BlockPos pos)
            {
            this.setBlockBounds(0.1F, 0.1F, 0.1F, 0.9F, 0.9F, 0.9F);
            }
            
            1 réponse Dernière réponse Répondre Citer 0
            • EmotionFox
              EmotionFox dernière édition par

              Pour le bloc en transparence :

              @Override
              @SideOnly(Side.CLIENT)
              public EnumWorldBlockLayer getBlockLayer()
              {
              return EnumWorldBlockLayer.CUTOUT_MIPPED;
              }
              

              CUTOUT_MIPPED que tu peu changer en fonction de la transparence voulue (à tester donc).

              Pour l’échelle :

              public boolean isLadder(IBlockAccess world, BlockPos pos, EntityLivingBase entity)
              {
              return true;
              }
              

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

                Merci à tous les deux, je teste tous cela maintenant 😉

                Edit : La methode de EmotionalFox ne fonctionne pas : Toujours pas transparent, et impossible de grimper dessus

                Edit2 : Erreur :

                public AxisAlignedBB getCollisionBoundingBox(World worldIn, BlockPos pos, IBlockState state)
                   {
                       this.setBlockBoundsBasedOnState(worldIn, pos);
                       return super.getCollisionBoundingBox(worldIn, pos, state);
                   }
                
                   @SideOnly(Side.CLIENT)
                   public AxisAlignedBB getSelectedBoundingBox(World worldIn, BlockPos pos)
                   {
                       this.setBlockBoundsBasedOnState(worldIn, pos);
                       return super.getSelectedBoundingBox(worldIn, pos);
                   }
                
                   public void setBlockBoundsBasedOnState(IBlockAccess worldIn, BlockPos pos)
                   {
                       this.setBlockBounds(0.1F, 0.1F, 0.1F, 0.9F, 0.9F, 0.9F);
                   }
                

                Erreurs sur

                • getCollisionBoundingBox

                • getSelectedBoundingBox

                  Si ceci peut vous aidez a trouver la solution, voici un screenshot de l’échaffaudage

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


                Contact :…

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

                  Ha, normal vu que tu as une organisation … spécial

                          scaffolding = new ResinLog(Material.wood).setUnlocalizedName("scaffolding").setCreativeTab(UsefulthingsMod.UTTab);
                  

                  ->

                          scaffolding = new Scaffolding(Material.wood).setUnlocalizedName("scaffolding").setCreativeTab(UsefulthingsMod.UTTab);
                  

                  Et ajoute extends Block à la déclaration de ta classe.

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

                    Il y a maintenant une erreur sur
                    setBlockBounds(float f, float g, float h, float i, float j, float k)

                    Et j’utilise du copier coller vite fait pour créer des blocs rapidement, et j’éviterais de faire, à l’avenir, ceci…

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


                    Contact :…

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

                      Il indique quoi ?

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

                        Cannot reduce the visibility of the inherited method from Block

                        Erreur de ma part, j’avais copié 2 fois cette partie
                        C’est l’heure du-du-du-duu DU TEST

                        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

                          Bon, eh bien, il est transparant, mais il l’est trop… Il rend même le sol transparant. Je veut pas un bloc XRay moi 😞
                          Ensuite, suite (lol) a la modification de la hitbox, ehb bien, je ne sais pas ou elle est, et il m’es impossible d’empiler des blocs, ou de les casser

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


                          Contact :…

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

                            Il faut ajouter une fonction pour forcer le rendu des autres côté du bloc il me semble. Regarde le verre, la fonction shouldSideBeRendered
                            Et pour la hitbox c’est étrange, le code que je t’ai donné ne devrait pas causer problème :s

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

                              J’ai enlevé le code qui permet de changer la hitbox
                              Dans la classe du verre, je ne trouve pas la fonction shouldSideBeRendered

                              package net.minecraft.block;
                              
                              import java.util.Random;
                              import net.minecraft.block.material.Material;
                              import net.minecraft.creativetab.CreativeTabs;
                              import net.minecraft.util.EnumWorldBlockLayer;
                              import net.minecraftforge.fml.relauncher.Side;
                              import net.minecraftforge.fml.relauncher.SideOnly;
                              
                              public class BlockGlass extends BlockBreakable
                              {
                                 private static final String __OBFID = "CL_00000249";
                              
                                 public BlockGlass(Material p_i45408_1_, boolean p_i45408_2_)
                                 {
                                     super(p_i45408_1_, p_i45408_2_);
                                     this.setCreativeTab(CreativeTabs.tabBlock);
                                 }
                              
                                 /**
                                  * Returns the quantity of items to drop on block destruction.
                                  */
                                 public int quantityDropped(Random random)
                                 {
                                     return 0;
                                 }
                              
                                 @SideOnly(Side.CLIENT)
                                 public EnumWorldBlockLayer getBlockLayer()
                                 {
                                     return EnumWorldBlockLayer.CUTOUT;
                                 }
                              
                                 public boolean isFullCube()
                                 {
                                     return false;
                                 }
                              
                                 protected boolean canSilkHarvest()
                                 {
                                     return true;
                                 }
                              }
                              

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


                              Contact :…

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

                                Elle est dans BlockBreakable alors

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

                                  Cela devrait t’aider : http://www.minecraftforgefrance.fr/showthread.php?tid=1977&page=3&highlight=%C3%A9chelle

                                  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

                                    J’ai bien trouvé la méthode. Mais cela ne change rien du tout
                                    Quand a la possibilité de grimpé dessus, je pense que je vais laisser tomber, puis je reprendrais lors d’une MàJ de mon mod ( Je pense la Bêta 1.0 ou la 1.0 )

                                    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

                                      Pour la transparence : regarde comment est fait le verre.

                                      Pour grimper : la solution que j’ai donné dans l’autre topic fonctionne, si tu n’y arrive pas c’est que tu l’utilises mal.

                                      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

                                        Voici la classe de mon bloc

                                        package eryah.usefulthings.blocks;
                                        
                                        import net.minecraft.block.Block;
                                        import net.minecraft.block.material.Material;
                                        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.AxisAlignedBB;
                                        import net.minecraft.util.BlockPos;
                                        import net.minecraft.util.EnumFacing;
                                        import net.minecraft.util.EnumWorldBlockLayer;
                                        import net.minecraft.world.IBlockAccess;
                                        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 Scaffolding extends Block {
                                        
                                        protected Scaffolding(Material materialIn) {
                                        super(materialIn);
                                        // TODO Auto-generated constructor stub
                                        }
                                        
                                        public static Block scaffolding;
                                        
                                        public static void init()
                                        {
                                        scaffolding = new Scaffolding(Material.wood).setUnlocalizedName("scaffolding").setCreativeTab(UsefulthingsMod.UTTab);
                                        }
                                        
                                        public static void register()
                                        {
                                        GameRegistry.registerBlock(scaffolding, scaffolding.getUnlocalizedName().substring(5));
                                        }
                                        
                                        public static void registerRenders()
                                        {
                                        registerRender(scaffolding);
                                        }
                                        
                                        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 boolean renderAsNormalBlock()
                                           {
                                               return false;
                                           }
                                        
                                        @SideOnly(Side.CLIENT)
                                        
                                           public EnumWorldBlockLayer getBlockLayer()
                                           {
                                               return EnumWorldBlockLayer.CUTOUT;
                                           }
                                        
                                        public boolean shouldSideBeRendered(IBlockAccess worldIn, BlockPos pos, EnumFacing side )
                                           {
                                        return true;
                                        
                                           }
                                        
                                        public boolean isLadder(IBlockAccess world, int x, int y, int z, EntityLivingBase entity)
                                           {
                                               return true;
                                           }
                                        
                                        public boolean isFullCube()
                                           {
                                               return false;
                                           }
                                        
                                        }
                                        
                                        

                                        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

                                          public boolean shouldSideBeRendered(IBlockAccess worldIn, BlockPos pos, EnumFacing side )
                                          {
                                          return true;
                                          
                                          }
                                          

                                          Il manque des conditions il me semble ?

                                          De plus tu n’as rajouté les fonctions qui permettent de grimper…

                                          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

                                            Bah si, je crois que c’est

                                            public boolean isLadder(IBlockAccess world, int x, int y, int z, EntityLivingBase entity)
                                                   {
                                                       return true;
                                                   }
                                            

                                            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
                                            • 1 / 2
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            Contact / Mentions Légales

                                            MINECRAFT FORGE FRANCE © 2018

                                            Powered by NodeBB