MFF

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

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

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8
    32 Messages 5 Publieurs 4.7k 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.
    • robin4002R Hors-ligne
      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
      • EryahE Hors-ligne
        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
        • robin4002R Hors-ligne
          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
          • EryahE Hors-ligne
            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
            • EryahE Hors-ligne
              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
              • robin4002R Hors-ligne
                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
                • EryahE Hors-ligne
                  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
                  • robin4002R Hors-ligne
                    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
                    • SCAREXS Hors-ligne
                      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
                      • EryahE Hors-ligne
                        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
                        • SCAREXS Hors-ligne
                          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
                          • EryahE Hors-ligne
                            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
                            • SCAREXS Hors-ligne
                              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
                              • EryahE Hors-ligne
                                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
                                • SCAREXS Hors-ligne
                                  SCAREX
                                  dernière édition par

                                  Absolument pas, ça ne suffit pas, essaie avec çà :

                                  @Override
                                  public void onEntityCollidedWithBlock(World world, BlockPos pos, IBlockState state, Entity entity)
                                  {
                                  if (entity.onGround || entity.isCollidedVertically) { return; }
                                  if (entity.motionY >= 0.1) {
                                  entity.setPosition(entity.posX, entity.posY + 1.0F, entity.posZ); // Ici le + 1.0F correspond à la vitesse de l'échelle, 1.0F est très grand, je te laisse essayer avec tes valeurs
                                  } else if (entity.motionY <= -0.1) {
                                  Block blockUnder = world.getBlockState(new BlockPos(entity.posX, entity.posY - 3, entity.posZ)).getBlock();
                                  if (blockUnder == null || blockUnder == this) {
                                  entity.setPosition(entity.posX, entity.posY - 1.0F, entity.posZ); // Même valeur ici mais en négatif
                                  }
                                  }
                                  }
                                  

                                  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
                                  • EryahE Hors-ligne
                                    Eryah
                                    dernière édition par

                                    Je ne grimpe toujours pas
                                    Verification de la classe

                                    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.Entity;
                                    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;
                                       }
                                    
                                    @Override
                                    public void onEntityCollidedWithBlock(World world, BlockPos pos, IBlockState state, Entity entity)
                                       {
                                    if (entity.onGround || entity.isCollidedVertically) { return; }
                                    if (entity.motionY >= 0.1) {
                                    entity.setPosition(entity.posX, entity.posY + 1.0F, entity.posZ);
                                    } else if (entity.motionY <= -0.1) {
                                    Block blockUnder = world.getBlockState(new BlockPos(entity.posX, entity.posY - 3, entity.posZ)).getBlock();
                                    if (blockUnder == null || blockUnder == this) {
                                    entity.setPosition(entity.posX, entity.posY - 1.0F, entity.posZ);
                                    }
                                    }
                                    }
                                    
                                    }
                                    
                                    

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


                                    Contact :…

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

                                      Mets un System.out.println(“quelque chose”) (ou utilise un logger si tu en as un) et place le dans la fonction onEntityCollidedWithBlock pour voir si la fonction est appellée lorsque tu te colles au block et que tu appuies sur la touche avancer.

                                      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
                                      • robin4002R Hors-ligne
                                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                        dernière édition par

                                        Ça fonction ne sera jamais appelé car il n’a pas réduit la boite de collision du bloc …

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

                                          Pour que le bloc soit transparent :

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

                                          Dans cette première fonction tu peux remplacer CUTOUT_MIPPED par CUTOUT ou par TRANSLUCENT, le mieux c’est de les tester tous pour voir leur différente propriété.

                                          
                                          @Override
                                          public boolean isVisuallyOpaque()
                                          {
                                          return false; //Si visuellement opaque
                                          }
                                          
                                          @Override
                                          public boolean isOpaqueCube()
                                          {
                                          return false; //Si effectivement opaque
                                          }
                                          
                                          @Override
                                          public boolean isFullCube()
                                          {
                                          return true; //Si complet
                                          }
                                          
                                          

                                          Et ça c’est le reste des fonctions obligatoires, un peux de recherche par ci par là t’aurais vite conduit à ce résultat.

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

                                            Plus de problème 🙂
                                            Enfin… Si
                                            Je peut monter uniquement si je saute contre le bloc, et je monte de 6 blocs max
                                            Si il est possible de corriger le bug, voici ma classe

                                            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.Entity;
                                            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;
                                               }
                                            
                                            @Override
                                               public boolean isVisuallyOpaque()
                                               {
                                                   return false; //Si visuellement opaque
                                               }
                                            
                                               @Override
                                               public boolean isOpaqueCube()
                                               {
                                                   return false; //Si effectivement opaque
                                               }
                                            
                                               @Override
                                               public boolean isFullCube()
                                               {
                                                   return true; //Si complet
                                               }
                                            
                                            @SideOnly(Side.CLIENT)
                                            
                                               public EnumWorldBlockLayer getBlockLayer()
                                               {
                                                   return EnumWorldBlockLayer.CUTOUT;
                                               }
                                            
                                            public boolean shouldSideBeRendered(IBlockAccess worldIn, BlockPos pos, EnumFacing side )
                                                {
                                                    switch(side) {
                                            
                                                    case DOWN:
                                                    return false;
                                                    default:
                                                    return true;
                                                    }
                                            
                                                }
                                            
                                            public boolean isLadder(IBlockAccess world, int x, int y, int z, EntityLivingBase entity)
                                               {
                                                   return true;
                                               }
                                            
                                            @Override
                                            public void onEntityCollidedWithBlock(World world, BlockPos pos, IBlockState state, Entity entity)
                                               {
                                            if (entity.onGround || entity.isCollidedVertically) { return; }
                                            if (entity.motionY >= 0.1) {
                                            entity.setPosition(entity.posX, entity.posY + 1.0F, entity.posZ);
                                            } else if (entity.motionY <= -0.1) {
                                            Block blockUnder = world.getBlockState(new BlockPos(entity.posX, entity.posY - 3, entity.posZ)).getBlock();
                                            if (blockUnder == null || blockUnder == this) {
                                            entity.setPosition(entity.posX, entity.posY - 1.0F, entity.posZ);
                                            }
                                            }
                                            }
                                            
                                            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);
                                               }
                                            
                                            }
                                            
                                            

                                            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
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB