MFF

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

    Créer un Block similaire au Block Barrier

    Planifier Épinglé Verrouillé Déplacé Résolu 1.9.x et 1.10.x
    1.10.x
    43 Messages 7 Publieurs 7.4k 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.
    • AymericRedA Hors-ligne
      AymericRed
      dernière édition par

      Regardes dans les logs, car si la texture est violette et noire, c’est que tu as du te tromper dans le nom d’un fichier.

      Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

      AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

      Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
      Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

        @‘AymericRed’:

        Regardes dans les logs, car si la texture est violette et noire, c’est que tu as du te tromper dans le nom d’un fichier.

        Je vois bien qu’il y a un problème dans les textures mais je sais pas c’est dû à quoi et comment le régler, tient si tu veux un passage de la log montrant la texture qui ne charge pas. Peux-tu me dire pourquoi celle-ci ne charge pas et comment régler ça ?

        [12:23:35] [Client thread/ERROR] [FML]: Exception loading model for variant adamantium:BlockLumineux#visible=false for blockstate “adamantium:BlockLumineux[visible=false]”
        net.minecraftforge.client.model.ModelLoaderRegistry$LoaderException: Exception loading model adamantium:BlockLumineux#visible=false with loader VariantLoader.INSTANCE, skipping
        at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:153) ~[ModelLoaderRegistry.class:?]
        at net.minecraftforge.client.model.ModelLoader.registerVariant(ModelLoader.java:241) ~[ModelLoader.class:?]
        at net.minecraft.client.renderer.block.model.ModelBakery.loadBlock(ModelBakery.java:145) ~[ModelBakery.class:?]
        at net.minecraftforge.client.model.ModelLoader.loadBlocks(ModelLoader.java:229) ~[ModelLoader.class:?]
        at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:146) ~[ModelLoader.class:?]
        at net.minecraft.client.renderer.block.model.ModelManager.onResourceManagerReload(ModelManager.java:28) [ModelManager.class:?]
        at net.minecraft.client.resources.SimpleReloadableResourceManager.notifyReloadListeners(SimpleReloadableResourceManager.java:132) [SimpleReloadableResourceManager.class:?]
        at net.minecraft.client.resources.SimpleReloadableResourceManager.reloadResources(SimpleReloadableResourceManager.java:113) [SimpleReloadableResourceManager.class:?]
        at net.minecraft.client.Minecraft.refreshResources(Minecraft.java:799) [Minecraft.class:?]
        at net.minecraftforge.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:338) [FMLClientHandler.class:?]
        at net.minecraft.client.Minecraft.startGame(Minecraft.java:561) [Minecraft.class:?]
        at net.minecraft.client.Minecraft.run(Minecraft.java:386) [Minecraft.class:?]
        at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
        at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
        at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
        at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
        at GradleStart.main(GradleStart.java:26) [start/:?]
        Caused by: net.minecraft.client.renderer.block.model.ModelBlockDefinition$MissingVariantException
        at net.minecraft.client.renderer.block.model.ModelBlockDefinition.getVariant(ModelBlockDefinition.java:78) ~[ModelBlockDefinition.class:?]
        at net.minecraftforge.client.model.ModelLoader$VariantLoader.loadModel(ModelLoader.java:1183) ~[ModelLoader$VariantLoader.class:?]
        at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:149) ~[ModelLoaderRegistry.class:?]
        … 24 more

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

          Le truc est que tu as te states différents qui ne sont pas spécifiés dans ton fichier json de blockstates, il faut que tu mettes une ligne pour visible=false et une pour visible=true. (On peut aussi ignorer le state au rendu mais je n’ai pas le code sous la main)

          Envoyé via mobile

          Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

          AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

          Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
          Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

          1 réponse Dernière réponse Répondre Citer 0
          • BrokenSwingB Hors-ligne
            BrokenSwing Moddeurs confirmés Rédacteurs
            dernière édition par

            En gros comme a dit Aymeric il faut que ton JSON ressemble à ça :

            
            {
            "variants": {
            "visible=true": {
            "model": "modid:tonModel"
            },
            "visible=false": {
            "model": "modid:tonModel"
            }
            }
            }
            
            

            Je ne crois pas m’être trompé, je n’ai pas vérifié mais ça devrait aller

            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

              Ou alors il faut lui indiquer d’ignorer l’état de bloc visible. Il y a une fonction pour ça mais je ne me souvient pas de son nom.

              1 réponse Dernière réponse Répondre Citer 0
              • BrokenSwingB Hors-ligne
                BrokenSwing Moddeurs confirmés Rédacteurs
                dernière édition par

                Je crois que c’est ModelLoader.setCustomStateMapper(Block, IStateMapper)

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

                  @‘BrokenSwing’:

                  Je crois que c’est ModelLoader.setCustomStateMapper(Block, IStateMapper)

                  Du coup je fais comme vous pouvez m’expliquer ? par ce que le blockstate je vois pas comment faire du coup ?

                  parce que pour le visible=false ça marche comment ?

                  {
                        “variants”: {
                               “visible=true”: {
                                      “model”: “adamantium:BlockLumineux”
                               },
                               “visible=false”: {
                                      “model”: “???”
                               }
                         }
                  }

                  1 réponse Dernière réponse Répondre Citer 0
                  • BrokenSwingB Hors-ligne
                    BrokenSwing Moddeurs confirmés Rédacteurs
                    dernière édition par

                    Tu met un bloc avec une texture transparente

                    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

                      Normalement la fonction getRenderType permet déjà de ne plus rien rendre si le return est EnumBlockRenderType.INVISIBLE.

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

                        @‘BrokenSwing’:

                        Tu met un bloc avec une texture transparente

                        ça ne marche toujours pas même si je remplace par un block qui est invisible, ça reste la même chose

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

                          @‘BrokenSwing’:

                          Tu met un bloc avec une texture transparente

                          Bon la texture visible apparait mais la invisible ne fonctionne pas donc le block reste toujours visible

                          1 réponse Dernière réponse Répondre Citer 0
                          • BrokenSwingB Hors-ligne
                            BrokenSwing Moddeurs confirmés Rédacteurs
                            dernière édition par

                            Il y a bien un changement de state lorsque tu prend le bloc dans tes mains et que tu l’enlève ? Pour tester mais des messages de debug. As-tu des messages d’erreur dans tes logs ?

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

                              @‘BrokenSwing’:

                              Il y a bien un changement de state lorsque tu prend le bloc dans tes mains et que tu l’enlève ? Pour tester mais des messages de debug. As-tu des messages d’erreur dans tes logs ?

                              Non je ne vois pas de changement de state , et toujours des messages de ce genre dans la logs :

                              [17:15:34] [Client thread/ERROR] [FML]: Exception loading model for variant adamantium:Texture#normal for blockstate “adamantium:Texture”
                              net.minecraftforge.client.model.ModelLoaderRegistry$LoaderException: Exception loading model adamantium:Texture#normal with loader VariantLoader.INSTANCE, skipping
                              at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:153) ~[ModelLoaderRegistry.class:?]
                              at net.minecraftforge.client.model.ModelLoader.registerVariant(ModelLoader.java:241) ~[ModelLoader.class:?]
                              at net.minecraft.client.renderer.block.model.ModelBakery.loadBlock(ModelBakery.java:145) ~[ModelBakery.class:?]
                              at net.minecraftforge.client.model.ModelLoader.loadBlocks(ModelLoader.java:229) ~[ModelLoader.class:?]
                              at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:146) ~[ModelLoader.class:?]
                              at net.minecraft.client.renderer.block.model.ModelManager.onResourceManagerReload(ModelManager.java:28) [ModelManager.class:?]
                              at net.minecraft.client.resources.SimpleReloadableResourceManager.notifyReloadListeners(SimpleReloadableResourceManager.java:132) [SimpleReloadableResourceManager.class:?]
                              at net.minecraft.client.resources.SimpleReloadableResourceManager.reloadResources(SimpleReloadableResourceManager.java:113) [SimpleReloadableResourceManager.class:?]
                              at net.minecraft.client.Minecraft.refreshResources(Minecraft.java:799) [Minecraft.class:?]
                              at net.minecraftforge.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:338) [FMLClientHandler.class:?]
                              at net.minecraft.client.Minecraft.startGame(Minecraft.java:561) [Minecraft.class:?]
                              at net.minecraft.client.Minecraft.run(Minecraft.java:386) [Minecraft.class:?]
                              at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
                              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
                              at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
                              at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
                              at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
                              at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
                              at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
                              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_101]
                              at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
                              at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_101]
                              at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_101]
                              at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
                              at GradleStart.main(GradleStart.java:26) [start/:?]
                              Caused by: net.minecraft.client.renderer.block.model.ModelBlockDefinition$MissingVariantException
                              at net.minecraft.client.renderer.block.model.ModelBlockDefinition.getVariant(ModelBlockDefinition.java:78) ~[ModelBlockDefinition.class:?]
                              at net.minecraftforge.client.model.ModelLoader$VariantLoader.loadModel(ModelLoader.java:1183) ~[ModelLoader$VariantLoader.class:?]
                              at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:149) ~[ModelLoaderRegistry.class:?]
                              … 24 more

                              1 réponse Dernière réponse Répondre Citer 0
                              • BrokenSwingB Hors-ligne
                                BrokenSwing Moddeurs confirmés Rédacteurs
                                dernière édition par

                                Tu as un bloc qui s’appelle Texture ?

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

                                  @‘BrokenSwing’:

                                  Tu as un bloc qui s’appelle Texture ?

                                  Euh oui j’ai un Block qui s’appelle Texture c’est pour un test

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • BrokenSwingB Hors-ligne
                                    BrokenSwing Moddeurs confirmés Rédacteurs
                                    dernière édition par

                                    Fait un debug de la fonction getActualState avec des print de partout puis dit-nous ce qui ne va pas

                                    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

                                      Mets ton curseur sur le bloc, appuies sur F3, l’état de bloc visible vaut quelle valeur ?

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

                                        @‘robin4002’:

                                        Mets ton curseur sur le bloc, appuies sur F3, l’état de bloc visible vaut quelle valeur ?

                                        visible : false

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

                                          @‘BrokenSwing’:

                                          Fait un debug de la fonction getActualState avec des print de partout puis dit-nous ce qui ne va pas

                                          Tu veux que je les mettent ou excuse moi je suis assez novice donc me faut un peu d’aide 🙂

                                          tient voilà la class

                                          package Blocks;
                                          
                                          import javax.annotation.Nullable;
                                          
                                          import fr.jules552.mod.init.BlocksMod;
                                          import net.minecraft.block.Block;
                                          import net.minecraft.block.material.Material;
                                          import net.minecraft.block.properties.IProperty;
                                          import net.minecraft.block.properties.PropertyBool;
                                          import net.minecraft.block.state.BlockStateContainer;
                                          import net.minecraft.block.state.IBlockState;
                                          import net.minecraft.client.Minecraft;
                                          import net.minecraft.init.Blocks;
                                          import net.minecraft.item.Item;
                                          import net.minecraft.item.ItemStack;
                                          import net.minecraft.util.BlockRenderLayer;
                                          import net.minecraft.util.EnumBlockRenderType;
                                          import net.minecraft.util.math.AxisAlignedBB;
                                          import net.minecraft.util.math.BlockPos;
                                          import net.minecraft.world.IBlockAccess;
                                          import net.minecraft.world.World;
                                          import net.minecraftforge.fml.common.FMLCommonHandler;
                                          import net.minecraftforge.fml.relauncher.Side;
                                          import net.minecraftforge.fml.relauncher.SideOnly;
                                          
                                          public class LumineuxBlock extends Block {
                                          
                                          public static final PropertyBool VISIBLE = PropertyBool.create("visible");
                                          
                                          public LumineuxBlock(Material materialIn) {
                                          super(materialIn);
                                          this.setBlockUnbreakable();
                                          this.setLightOpacity(0);
                                          this.setResistance(6000001.0F);
                                          this.translucent = false;
                                          
                                          }
                                          
                                          @Nullable
                                          public AxisAlignedBB getCollisionBoundingBox(IBlockState blockState, World worldIn, BlockPos pos) {
                                          return NULL_AABB;
                                          }
                                          
                                          @SideOnly(Side.CLIENT)
                                          public float getAmbientOcclusionLightValue(IBlockState state) {
                                          return 1.0F;
                                          }
                                          
                                          public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos) {
                                          if (FMLCommonHandler.instance().getSide().isClient()) {
                                          return getClientState(state);
                                          }
                                          return state.withProperty(VISIBLE, Boolean.valueOf(false));
                                          }
                                          
                                          @SideOnly(Side.CLIENT)
                                          private IBlockState getClientState(IBlockState state) {
                                          ItemStack stack1 = Minecraft.getMinecraft().thePlayer.getHeldItemMainhand();
                                          ItemStack stack2 = Minecraft.getMinecraft().thePlayer.getHeldItemOffhand();
                                          if ((stack1 != null && stack1.getItem() == Item.getItemFromBlock(this)) || (stack2 != null && stack2.getItem() == Item.getItemFromBlock(this))) {
                                          state.withProperty(VISIBLE, Boolean.valueOf(true)); // visible
                                          }
                                          return state.withProperty(VISIBLE, Boolean.valueOf(false));
                                          }
                                          
                                          public EnumBlockRenderType getRenderType(IBlockState state) {
                                          if (state.getValue(VISIBLE)) {
                                          return EnumBlockRenderType.MODEL;
                                          }
                                          return EnumBlockRenderType.INVISIBLE;
                                          }
                                          
                                          public boolean isFullCube(IBlockState state) {
                                          return false;
                                          }
                                          
                                          public boolean isOpaqueCube(IBlockState state) {
                                          return false;
                                          }
                                          
                                          public int getMetaFromState(IBlockState state) {
                                          return 0;
                                          }
                                          
                                          protected BlockStateContainer createBlockState() {
                                          return new BlockStateContainer(this, new IProperty[] { VISIBLE });
                                          }
                                          
                                          }
                                          
                                          

                                          Si tu pouvais me la compléter avec tes messages de debug car je vois pas vraiment ou les placer, Merci d’avance 🙂

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • BrokenSwingB Hors-ligne
                                            BrokenSwing Moddeurs confirmés Rédacteurs
                                            dernière édition par

                                            Manque un return :

                                            
                                            @SideOnly(Side.CLIENT)
                                            private IBlockState getClientState(IBlockState state) {
                                            ItemStack stack1 = Minecraft.getMinecraft().thePlayer.getHeldItemMainhand();
                                            ItemStack stack2 = Minecraft.getMinecraft().thePlayer.getHeldItemOffhand();
                                            if ((stack1 != null && stack1.getItem() == Item.getItemFromBlock(this)) || (stack2 != null && stack2.getItem() == Item.getItemFromBlock(this))) {
                                            return state.withProperty(VISIBLE, Boolean.valueOf(true)); // visible
                                            }
                                            return state.withProperty(VISIBLE, Boolean.valueOf(false));
                                            }
                                            
                                            
                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 3
                                            • 3 / 3
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB