Problème json



  • Bonjour,
    J'ai un problème avec la texture de mon block et je n'arrive pas a voir ce qui ne vas pas pouvez vous m'aider ?
    Je vais mettre mon dossier src en pièce jointe
    J'ajoute que j'ai vérifié la taille de ma texture (16x16) elle est bien en .png et le nom correspond bien il est en minuscule (ore_copper.png)
    Merci d'avance



  • Je ne suis pas très bon en json, mais il y a quelque chose qui me tape à l'oeil dans ton ore_copper.json :

        "variants": {
            "normal": {
                "model": "cube_all"
            },
            "inventory": {
                "model": "cube_all"
            }
        }
    

    déjà, ça devrait être : (en supposant que ton modid est "priya")

    "variants": {
    "normal": {
    "model": "priya:cube_all"
    },
    "inventory": {
    "model": "priya:cube_all"
    }
    }
    

    Et ensuite, dans ton dossier /resources/assets/priya/models/block, tu dois avoir un fichier "cube_all.json".
    Je te conseille de lire cette partie pour savoir quoi mettre dans ce fichier.

    EDIT : Je te donne cette réponse sans te garantir que ça fonctionne, je n'ai pas encore totalement fait le passage aux nouvelles versions et je ne connais pas parfaitement le json, mais il me semble que c'est comme ça. Si tu as un autre problème, dis-le !
    EDIT 2 : Je viens de penser, tu as bien suivi le tutoriel que je t'ai donné en entier ? Parce que ton .json semble largement différent du tutoriel, alors qu'il n'y a pas de raison pour les changer.



  • Moi, il y a aussi

    "inventory"
    

    Qui me tape à l’œil. "inventory" correspond à l'item mais tu ne doit pas le mêtre ici, il faut un json pour l'item de ton block dans le fichier asset/ton_mod_id/models/item. Il me semble que c'était bien expliqué dans le tuto de BrokenSwing.



  • Merci à tous les deux j'ai suivi vos conseils et fait les changements préconiser par le tutoriel mais ça ne fonctionne toujours pas ;( 
    Je vous colle mes changements
    J'ai rajouté le cube_all et enlevé l'inventory pour le mettre dans le fichier des models/items
    Merci d'avance



  • En fait, qu'est-ce qui ne fonctionne pas ? Ça sera déjà plus simple.

    Le bloc s'affiche en jeu mais pas la texture, ou est-ce que ce n'est pas carrément le bloc qui n'existe pas ?
    La texture dans l'inventaire, ou la texture lorsqu'on pose les blocs, ou les deux ?



  • @'@Pchom':

    En fait, qu'est-ce qui ne fonctionne pas ? Ça sera déjà plus simple.

    Le bloc s'affiche en jeu mais pas la texture, ou est-ce que ce n'est pas carrément le bloc qui n'existe pas ?
    La texture dans l'inventaire, ou la texture lorsqu'on pose les blocs, ou les deux ?

    En faite le block s'affiche en jeu sans texture pareil quand je le drop et pareil quand je l'ai dans l'inventaire aucune texture ne fonctionne



  • Il y a plusieurs choses à changer.
    Déjà, ton fichier ore_copper.json, tu ouvres beaucoup d'accolades que tu ne fermes jamais, c'est un problème.
    Je te propose celui-ci :

    {
       "forge_marker": 1,
       "variants": {
           "normal": {
               "model": "priya:cube_all"
           }
       }
    }
    

    Dans ton cube_all.json, modifie-le comme ceci :

    {
       "parent": "block/cube",
       "textures": {
           "all": "priya:blocks/ore_copper"
           "particle": "#all",
           "down": "#all",
           "up": "#all",
           "north": "#all",
           "east": "#all",
           "south": "#all",
           "west": "#all"
       }
    }
    
    

    Je ne suis pas certain, mais essaie ça et dis-moi si ça fonctionne ^^


  • Rédacteurs

    aypristyle : Pas besoin de poster sur le tuto + section support + mp

    Normalement si tu veux juste un bloc simple tu as ceci :
    assets/modid/blockstates/tonbloc.json

    
    {
    "variants": {
    "normal": {
    "model": "modid:tonbloc"
    }
    }
    }
    
    

    assets/modid/models/block/tonbloc.json

    
    {
    "parent": "block/cube_all",
    "textures": {
    "all": "modid:blocks/nomDeLaTexture"
    }
    }
    
    

    assets/modid/models/item/tonbloc.json

    
    {
    "parent": "modid:block/tonbloc"
    }
    
    

    Tu dois remplacer modid par ton MODID, tonbloc par le nom de ton bloc et nomDeLaTexture par le nom de la texture



  • Malheureusement ça ne marche toujours pas
    Voici ce que m'a afficher la console si ça peut aider

    [11:40:13] [Client thread/ERROR] [FML]: Suppressed additional 5 model loading errors for domain priya
    [11:40:13] [Client thread/WARN]: Skipping bad option: lastServer:
    [11:40:19] [Realms Notification Availability checker #1/INFO]: Could not authorize you against Realms server: Invalid session id
    [11:40:30] [Server thread/INFO]: Starting integrated minecraft server version 1.11
    [11:40:30] [Server thread/INFO]: Generating keypair
    [11:40:31] [Server thread/INFO] [FML]: Injecting existing block and item data into this server instance
    [11:40:31] [Server thread/INFO] [FML]: Found a missing id from the world priya:orecopper
    [11:40:31] [Server thread/INFO] [FML]: Applying holder lookups
    [11:40:31] [Server thread/INFO] [FML]: Holder lookups applied



  • La réponse de BrokenSwing devrait être suffisante pour te permettre de mettre ta texture correctement. Tu as essayé sa méthode ?



  • Après avoir regardé tes sources, j'ai compris ce qui t'est passé par la tête, aypristyle :
    dans son tuto, BrokenSwing parle des fichiers "cube_all.json", "cube.json" et "block.json". Mais ces fichiers, ce n'est pas lui qui les a créé, ils existent déjà dans minecraft donc tu n'a pas besoin de créer ces fichier. Tout ce que tu doit faire (en plus du blockState et de model d'Item), c'est créer un fichier de model de ton block qui a pour parent cube_all et tu redéfini la texture "all" qui est la texture qui est affichée de tous les cotés du block.



  • Un grand merci a vous trois ça fonctionne ! C'est un miracle 😉
    Juste le rendu du block posé ne fonctionne toujours pas …


  • Rédacteurs

    "un miracle" xD



  • @'BrokenSwing':

    "un miracle" xD

    JUste quand je pose le block la texture n'apparaît toujours pas par contre dans l'inventaire et quand je le drop c'est bon


  • Rédacteurs

    Il me faut les logs s'il te plaît



  • Voilà d'après ce que j'ai compris c'est à cause de la variant dans le blockstate
    [Client thread/ERROR] [FML]: Exception loading blockstate for the variant priya:ore_copper#normal: 
    java.lang.Exception: Could not load model definition for variant priya:ore_copper
    at net.minecraftforge.client.model.ModelLoader.getModelBlockDefinition(ModelLoader.java:274) ~[ModelLoader.class:?]
    at net.minecraft.client.renderer.block.model.ModelBakery.loadBlock(ModelBakery.java:121) ~[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.registerReloadListener(SimpleReloadableResourceManager.java:122) [SimpleReloadableResourceManager.class:?]
    at net.minecraft.client.Minecraft.startGame(Minecraft.java:539) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.run(Minecraft.java:385) [Minecraft.class:?]
    at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_121]
    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_121]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_121]
    at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
    at GradleStart.main(GradleStart.java:26) [start/:?]
    Caused by: java.lang.RuntimeException: Encountered an exception when loading model definition of 'priya:ore_copper' from: 'priya:blockstates/ore_copper.json' in resourcepack: 'FMLFileResourcePack:Mod de Priya'
    at net.minecraft.client.renderer.block.model.ModelBakery.loadModelBlockDefinition(ModelBakery.java:246) ~[ModelBakery.class:?]
    at net.minecraft.client.renderer.block.model.ModelBakery.loadMultipartMBD(ModelBakery.java:223) ~[ModelBakery.class:?]
    at net.minecraft.client.renderer.block.model.ModelBakery.getModelBlockDefinition(ModelBakery.java:208) ~[ModelBakery.class:?]
    at net.minecraftforge.client.model.ModelLoader.getModelBlockDefinition(ModelLoader.java:270) ~[ModelLoader.class:?]
    … 20 more
    Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:176) ~[ReflectiveTypeAdapterFactory$Adapter.class:?]
    at com.google.gson.Gson.fromJson(Gson.java:803) ~[Gson.class:?]
    at com.google.gson.Gson.fromJson(Gson.java:768) ~[Gson.class:?]
    at com.google.gson.Gson.fromJson(Gson.java:717) ~[Gson.class:?]
    at com.google.gson.Gson.fromJson(Gson.java:689) ~[Gson.class:?]
    at net.minecraftforge.client.model.BlockStateLoader.load(BlockStateLoader.java:76) ~[BlockStateLoader.class:?]
    at net.minecraft.client.renderer.block.model.ModelBlockDefinition.parseFromReader(ModelBlockDefinition.java:37) ~[ModelBlockDefinition.class:?]
    at net.minecraft.client.renderer.block.model.ModelBakery.loadModelBlockDefinition(ModelBakery.java:242) ~[ModelBakery.class:?]
    at net.minecraft.client.renderer.block.model.ModelBakery.loadMultipartMBD(ModelBakery.java:223) ~[ModelBakery.class:?]
    at net.minecraft.client.renderer.block.model.ModelBakery.getModelBlockDefinition(ModelBakery.java:208) ~[ModelBakery.class:?]
    at net.minecraftforge.client.model.ModelLoader.getModelBlockDefinition(ModelLoader.java:270) ~[ModelLoader.class:?]
    … 20 more
    Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1
    at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:374) ~[JsonReader.class:?]
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:165) ~[ReflectiveTypeAdapterFactory$Adapter.class:?]
    at com.google.gson.Gson.fromJson(Gson.java:803) ~[Gson.class:?]
    at com.google.gson.Gson.fromJson(Gson.java:768) ~[Gson.class:?]
    at com.google.gson.Gson.fromJson(Gson.java:717) ~[Gson.class:?]
    at com.google.gson.Gson.fromJson(Gson.java:689) ~[Gson.class:?]
    at net.minecraftforge.client.model.BlockStateLoader.load(BlockStateLoader.java:76) ~[BlockStateLoader.class:?]
    at net.minecraft.client.renderer.block.model.ModelBlockDefinition.parseFromReader(ModelBlockDefinition.java:37) ~[ModelBlockDefinition.class:?]
    at net.minecraft.client.renderer.block.model.ModelBakery.loadModelBlockDefinition(ModelBakery.java:242) ~[ModelBakery.class:?]
    at net.minecraft.client.renderer.block.model.ModelBakery.loadMultipartMBD(ModelBakery.java:223) ~[ModelBakery.class:?]
    at net.minecraft.client.renderer.block.model.ModelBakery.getModelBlockDefinition(ModelBakery.java:208) ~[ModelBakery.class:?]
    at net.minecraftforge.client.model.ModelLoader.getModelBlockDefinition(ModelLoader.java:270) ~[ModelLoader.class:?]
    … 20 more


  • Rédacteurs

    Envoie la hiérarchie de ton dossier tes assets


  • Administrateurs

    Le json suivant : priya:blockstates/ore_copper.json
    est malformé.



  • ça c'est le chemin jusqu'a mes assets
    C:\Users\priya\Downloads\forge-1.11 eclipse\src\main\resources\assets
    et après voilà mes assets
    Tu as besoin d'autre chose ?


  • Rédacteurs

    Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException -> Ah oui, je l'avait pas vu celui-ci

    Du coup envoie ton json

    Il manque une accolade à la fin de ton json du blockstate