Problème affichage de texture



  • Bonjour

    J'ai crée un bloc simple, quand le bloc est dans ma hotbar (donc sous forme d'item) la texture s'affiche. En revanche quand le bloc est placé la texture ne s'affiche pas. Voila mes fichiers JSON :

    Le blockstates

    {
    
    "variant":{
      "normal":{
        "model": "modid:ruby_block"
        
      }
    }
    
    }
    

    Le model/block

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

  • Administrateurs

    Salut,

    Il faut aussi faire un json dans model/item



  • Ah oui j'en ai fais un aussi :

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

    Mais ca ne marche toujours pas


  • Administrateurs

    Dans ton code tu as mis la fonction ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(<tonBlock>), <metadata>, new ModelResourceLocation("<nom du fichier json", "inventory")) ?

    Il là faut, dans l'event ModelRegistryEvent.

    Exemple :
    https://github.com/kevin68/The-Spotlight-Mod/blob/4e67ef86f88fd0c8e3e94d9eea1f056222180c43/src/fr/mcnanotech/kevin_68/thespotlightmod/TSMEvents.java#L53



  • @robin4002 Oui je viens de regarder elle est bien là, que faire ?

    ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(Block), 0, new ModelResourceLocation(new ResourceLocation(Refs.MODID, Block.getUnlocalizedName().substring(5)), "inentory"));
    

  • Administrateurs

    @Gregoirelpv a dit dans Problème affichage de texture :

    inentory

    Tu as une erreur ici. Cela devrait être inventory



  • @robin4002 Merci, maiiis ça n'a rien changé


  • Administrateurs

    Tu peux envoyer la classe complète où se trouve ta fonction setCustomModelResourceLocation ?



  • @robin4002

    package com.kowze.kowzemodv1.init;
    
    import java.util.List;
    
    import com.google.common.collect.Lists;
    import com.kowze.kowzemodv1.blocks.loadBlock;
    import com.kowze.kowzemodv1.utils.Refs;
    
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    import net.minecraft.client.renderer.block.model.ModelResourceLocation;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemBlock;
    import net.minecraft.util.ResourceLocation;
    import net.minecraftforge.client.event.ModelRegistryEvent;
    import net.minecraftforge.client.model.ModelLoader;
    import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
    import net.minecraftforge.fml.common.registry.GameRegistry;
    
    public class ModBlocks {
    	
    	public static final ModBlocks INSTANCE = new ModBlocks();
    	public static Block ruby_block;
    	public static Block dark_iron_block;
    	public static Block ruby_ore;
    	private List<Block> Blocks;
    	
    	public void init() {
    		Blocks = Lists.newArrayList();
    		ruby_block = new loadBlock("ruby_block", Material.IRON, 5.0F, 10.0F, 1, "pickaxe");
    		dark_iron_block = new loadBlock("dark_iron_block", Material.IRON, 5.0F, 10.0F, 1, "pickaxe");
    		ruby_ore = new loadBlock("ruby_ore", Material.IRON, 5.0F, 10.0F, 2, "pickaxe");
    	}
    	
    	@SubscribeEvent
    	public void registerModels(ModelRegistryEvent e) {
    		for(Block b : Blocks) {
    			registerModel(b);
    		}
    	}
    	
    	public void registerModel(Block Block) {
    		ItemBlock ib = new ItemBlock(Block);
    		ib.setRegistryName(Block.getRegistryName());
    		GameRegistry.findRegistry(Item.class).register(ib);
    		
    		ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(Block), 0, new ModelResourceLocation(new ResourceLocation(Refs.MODID, Block.getUnlocalizedName().substring(5)), "inventory"));
    	}
    	
    	public List<Block> getBlocks() {
    		return Blocks;
    	}
    }
    

  • Administrateurs

    Comme dit dans l'autre discussion le problème est le même ici, ta classe n'est surement pas enregistré comme classe d'event, donc ModelRegistryEvent n'est jamais appelé.


Log in to reply