Un petit probleme [Json]



  • Voila, je veut crée un mini block de rubik's cube (juste pour la deco) mais le jeu n'affiche pas la texture voila mes Json
    Blockstates

    {
        "variants": {
            "normal": {
                "model": "tuto:rubiks",
                "uvlock": false
            }
        }
    }
    

    Models

    {
       "textures": {
           "rubiks": "tuto:blocks/rubiks"
    "rubiks2": "tuto:blocks/rubiks2"
    "rubiks3": "tuto:blocks/rubiks3"
    "rubiks4": "tuto:blocks/rubiks4"
    "rubiks5": "tuto:blocks/rubiks5"
    "rubiks6": "tuto:blocks/rubiks6"
       },
        "faces": {
               "down": {
                   "texture": "#rubiks2",
               },
               "up": {
                   "texture": "#rubiks",
               },
               "north": {
                   "texture": "#rubiks3",
               },
               "south": {
                   "texture": "#rubiks4",
               },
               "west": {
                   "texture": "#rubiks5",
               },
               "east": {
                   "texture": "#rubiks6",
               }
           }
       }]
    }
    

    meme si je suis sur de ne pas avoir fait d'erreurs:

    package com.tuto.mod.blocks;
    
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    
    public class RubiksMod extends Block
    {
    
        public RubiksMod(Material materialIn)
        {
            super(Material.ROCK);
            setHardness(0.5F);
        }
    }
    

    Voila un petit probleme qui je pense est simple a résoudre, j'ai deja verifié les logs du jeu, j'ai trouvé cela :

    [18:52:45] [Client thread/ERROR] [FML]: Could not load vanilla model parent 'tuto:block/rubiks' for 'net.minecraft.client.renderer.block.model.ModelBlock@1b3d045
    net.minecraftforge.client.model.ModelLoaderRegistry$LoaderException: Exception loading model tuto:block/rubiks with loader VanillaLoader.INSTANCE, skipping
    at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:134) ~[ModelLoaderRegistry.class:?]
    at net.minecraftforge.client.model.ModelLoaderRegistry.getModelOrLogError(ModelLoaderRegistry.java:184) [ModelLoaderRegistry.class:?]
    at net.minecraftforge.client.model.ModelLoader$VanillaModelWrapper.getTextures(ModelLoader.java:459) [ModelLoader$VanillaModelWrapper.class:?]
    at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:144) [ModelLoaderRegistry.class:?]
    at net.minecraftforge.client.model.ModelLoader.loadItemModels(ModelLoader.java:298) [ModelLoader.class:?]
    at net.minecraft.client.renderer.block.model.ModelBakery.loadVariantItemModels(ModelBakery.java:170) [ModelBakery.class:?]
    at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:128) [ModelLoader.class:?]
    at net.minecraft.client.renderer.block.model.ModelManager.onResourceManagerReload(ModelManager.java:28) [ModelManager.class:?]
    at net.minecraft.client.resources.SimpleReloadableResourceManager.registerReloadListener(SimpleReloadableResourceManager.java:121) [SimpleReloadableResourceManager.class:?]
    at net.minecraft.client.Minecraft.startGame(Minecraft.java:538) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.run(Minecraft.java:384) [Minecraft.class:?]
    at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_111]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_111]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_111]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_111]
    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_111]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_111]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_111]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_111]
    at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
    at GradleStart.main(GradleStart.java:26) [start/:?]
    Caused by: com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated object at line 4 column 3
    at com.google.gson.internal.Streams.parse(Streams.java:56) ~[Streams.class:?]
    at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:54) ~[TreeTypeAdapter.class:?]
    at net.minecraft.util.JsonUtils.gsonDeserialize(JsonUtils.java:453) ~[JsonUtils.class:?]
    at net.minecraft.client.renderer.block.model.ModelBlock.deserialize(ModelBlock.java:51) ~[ModelBlock.class:?]
    at net.minecraft.client.renderer.block.model.ModelBakery.loadModel(ModelBakery.java:315) ~[ModelBakery.class:?]
    at net.minecraftforge.client.model.ModelLoader.access$1100(ModelLoader.java:99) ~[ModelLoader.class:?]
    at net.minecraftforge.client.model.ModelLoader$VanillaLoader.loadModel(ModelLoader.java:849) ~[ModelLoader$VanillaLoader.class:?]
    at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:130) ~[ModelLoaderRegistry.class:?]
    … 23 more
    Caused by: com.google.gson.stream.MalformedJsonException: Unterminated object at line 4 column 3
    at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1505) ~[JsonReader.class:?]
    at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:480) ~[JsonReader.class:?]
    at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:403) ~[JsonReader.class:?]
    at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:666) ~[TypeAdapters$25.class:?]
    at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:667) ~[TypeAdapters$25.class:?]
    at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:642) ~[TypeAdapters$25.class:?]
    at com.google.gson.internal.Streams.parse(Streams.java:44) ~[Streams.class:?]
    at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:54) ~[TreeTypeAdapter.class:?]
    at net.minecraft.util.JsonUtils.gsonDeserialize(JsonUtils.java:453) ~[JsonUtils.class:?]
    at net.minecraft.client.renderer.block.model.ModelBlock.deserialize(ModelBlock.java:51) ~[ModelBlock.class:?]
    at net.minecraft.client.renderer.block.model.ModelBakery.loadModel(ModelBakery.java:315) ~[ModelBakery.class:?]
    at net.minecraftforge.client.model.ModelLoader.access$1100(ModelLoader.java:99) ~[ModelLoader.class:?]
    at net.minecraftforge.client.model.ModelLoader$VanillaLoader.loadModel(ModelLoader.java:849) ~[ModelLoader$VanillaLoader.class:?]
    at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:130) ~[ModelLoaderRegistry.class:?]
    … 23 more
    [18:52:45] [Client thread/INFO] [FML]: Max texture size: 4096
    [18:52:45] [Client thread/INFO]: Created: 16x16 textures-atlas
    [18:52:48] [Client thread/ERROR] [FML]: Exception loading model for variant tuto:rubiks#normal for blockstate "tuto:rubiks"
    net.minecraftforge.client.model.ModelLoaderRegistry$LoaderException: Exception loading model tuto:rubiks#normal with loader VariantLoader.INSTANCE, skipping
    at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:134) ~[ModelLoaderRegistry.class:?]
    at net.minecraftforge.client.model.ModelLoader.registerVariant(ModelLoader.java:222) ~[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:210) ~[ModelLoader.class:?]
    at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:127) ~[ModelLoader.class:?]
    at net.minecraft.client.renderer.block.model.ModelManager.onResourceManagerReload(ModelManager.java:28) [ModelManager.class:?]
    at net.minecraft.client.resources.SimpleReloadableResourceManager.registerReloadListener(SimpleReloadableResourceManager.java:121) [SimpleReloadableResourceManager.class:?]
    at net.minecraft.client.Minecraft.startGame(Minecraft.java:538) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.run(Minecraft.java:384) [Minecraft.class:?]
    at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_111]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_111]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_111]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_111]
    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_111]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_111]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_111]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_111]
    at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
    at GradleStart.main(GradleStart.java:26) [start/:?]
    Caused by: net.minecraftforge.client.model.ModelLoaderRegistry$LoaderException: Exception loading model tuto:block/rubiks with loader VanillaLoader.INSTANCE, skipping
    at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:134) ~[ModelLoaderRegistry.class:?]
    at net.minecraftforge.client.model.ModelLoader$WeightedRandomModel.<init>(ModelLoader.java:733) ~[ModelLoader$WeightedRandomModel.class:?]
    at net.minecraftforge.client.model.ModelLoader$VariantLoader.loadModel(ModelLoader.java:1166) ~[ModelLoader$VariantLoader.class:?]
    at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:130) ~[ModelLoaderRegistry.class:?]
    … 21 more
    Caused by: com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated object at line 4 column 3
    at com.google.gson.internal.Streams.parse(Streams.java:56) ~[Streams.class:?]
    at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:54) ~[TreeTypeAdapter.class:?]
    at net.minecraft.util.JsonUtils.gsonDeserialize(JsonUtils.java:453) ~[JsonUtils.class:?]
    at net.minecraft.client.renderer.block.model.ModelBlock.deserialize(ModelBlock.java:51) ~[ModelBlock.class:?]
    at net.minecraft.client.renderer.block.model.ModelBakery.loadModel(ModelBakery.java:315) ~[ModelBakery.class:?]
    at net.minecraftforge.client.model.ModelLoader.access$1100(ModelLoader.java:99) ~[ModelLoader.class:?]
    at net.minecraftforge.client.model.ModelLoader$VanillaLoader.loadModel(ModelLoader.java:849) ~[ModelLoader$VanillaLoader.class:?]
    at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:130) ~[ModelLoaderRegistry.class:?]
    at net.minecraftforge.client.model.ModelLoader$WeightedRandomModel.<init>(ModelLoader.java:733) ~[ModelLoader$WeightedRandomModel.class:?]
    at net.minecraftforge.client.model.ModelLoader$VariantLoader.loadModel(ModelLoader.java:1166) ~[ModelLoader$VariantLoader.class:?]
    at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:130) ~[ModelLoaderRegistry.class:?]
    … 21 more
    Caused by: com.google.gson.stream.MalformedJsonException: Unterminated object at line 4 column 3
    at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1505) ~[JsonReader.class:?]
    at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:480) ~[JsonReader.class:?]
    at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:403) ~[JsonReader.class:?]
    at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:666) ~[TypeAdapters$25.class:?]
    at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:667) ~[TypeAdapters$25.class:?]
    at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:642) ~[TypeAdapters$25.class:?]
    at com.google.gson.internal.Streams.parse(Streams.java:44) ~[Streams.class:?]
    at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:54) ~[TreeTypeAdapter.class:?]
    at net.minecraft.util.JsonUtils.gsonDeserialize(JsonUtils.java:453) ~[JsonUtils.class:?]
    at net.minecraft.client.renderer.block.model.ModelBlock.deserialize(ModelBlock.java:51) ~[ModelBlock.class:?]
    at net.minecraft.client.renderer.block.model.ModelBakery.loadModel(ModelBakery.java:315) ~[ModelBakery.class:?]
    at net.minecraftforge.client.model.ModelLoader.access$1100(ModelLoader.java:99) ~[ModelLoader.class:?]
    at net.minecraftforge.client.model.ModelLoader$VanillaLoader.loadModel(ModelLoader.java:849) ~[ModelLoader$VanillaLoader.class:?]
    at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:130) ~[ModelLoaderRegistry.class:?]
    at net.minecraftforge.client.model.ModelLoader$WeightedRandomModel.<init>(ModelLoader.java:733) ~[ModelLoader$WeightedRandomModel.class:?]
    at net.minecraftforge.client.model.ModelLoader$VariantLoader.loadModel(ModelLoader.java:1166) ~[ModelLoader$VariantLoader.class:?]
    at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:130) ~[ModelLoaderRegistry.class:?]
    … 21 more
    

    Dans ce logs, il dit que il y a un objet invalide ligne 4 "colomn" 3 et qu'il est causé par le Json

    Voila, je n'ai pas trop le temps en ce moment donc pas le temps de chercher !

    Merci :D</init></init></init>



  • Il y a plein d'erreurs dans ton fichier de modèle avec des virgules là où il ne faut pas.



  • peu tu m'en dire plus ?
    comme où ?
    je viens de voir mes erreur xD c'est royalement bête, je teste pour voir.


    Résolu ! 
    Mais juste un truc, lorsque je pose mon petit block, sa hitbox est bugge (trop grande) et le block situé en dessous de lui n'est pas rendu, je souhaiterais aussi que le block soit centrer, actuellement il est située en haut à gauche du block. Voila  🙂



  • Voilà, je sais que le double post est interdit mais bon je fraude ?voilà mon problème, mon Block à une hitbox de Block normal, mais il est plus petit, il fait donc réduire sa hitbox et en même temps sa collision. Je voudrais aussi que le Block en dessous lui soit rendu (vu que minecraft considère qu'il y a un Block plein au dessus, il n'affiche pas la texture mais mon Block n'est pas plein d'où le problème).
    Actuellement mon Block est mal orienté, il est situé en haut à droite d'un Block normal, je voudrais donc qu'il soit centré.
    Un dernier truc, je veut tous juste changé le bruit quand on marche dessus en quand on le casse.
    Voilà vu la taille du post, je pense que le double post est compris 😄
    Beaucoup de choses à modifier ! Pour les intéressés, je donnerais mon code apres résolution !
    Merci
    Tituya



  • Pour la boîte de collision, dans ton constructeur, il faut utiliser une méthode comme "setColisionBoundingBox" PS, il faut mettre des chiffres à virgules ( 0,5 pour la moitié d'un block). Pour la transparence des blocks à proximité, il faut overide une méthode. Là je ne peux pas te dire laquelle, mais c'est quelque chose comme isOpaqueCube, isFullCuBe ou isSolideCube et mettre "return false".
    Enfin, pour centrer le block, si tu ne veux pas l'embêter, tu dois modifier le modèle json.



  • Bon j'ai réussi pour centrer le cube, il manque toujours le bug de l'opacité et de la collision
    [EDIT] en regardant les classes de l'anvil, j'ai résolu l'opacité du block du dessous. manque plus que la hitbox, y a t-il un block minecraft ayant une hitbox différente ? Nouveau bug, le cube une fois lancé est ENORME comment je réduit sa taille ?

    [EDIT 2 ]
    J'ai trouvé la hitbox, manque plus que la taille de l'item


  • Administrateurs

    Dans le json, au niveau de display tu peux ajouter "entity" et faire un scale < 1 pour réduire la taille lorsque le bloc est sous la forme d'entité item.

    Pour la boite de collision, il y a pleins de bloc de minecraft avec une collision différente : les barrières, les plaques de pressions, les cactus, etc.



  • Merci robin 😄 j'ai trouvé tout seul 😄 manque plus qu'a régler la hitbox et la taille de litem



  • je n'arrive pas à modifier la taille de l'item :,c



  • Dans ton .json pour ton item, tu dois avoir une partie display contenant une partie ground contenant le paramètre scale, définit par [X, Y, Z], pour le redimentionner. http://minecraft-fr.gamepedia.com/Modèles