Problème de rendu ISBRH



  • Salut !

    Aujourd'hui j ai voulu m attaquer au rendu ISBRH heureusement le tuto est très bien expliqué, rien a redire mais pourant aprés avoir fais tous se qui et dit sur le tuto cela ne fonctionne pas.

    J ai tout recommencé de multiple fois mais rien ne fonctionne pourant je pence que tout mon code est bon mais faut croire que non:

    Class principale:

    test = new
    test(4010).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("test").setTextureName("craftech:white_block");
    GameRegistry.registerBlock(test, "test");
    

    Class test:

    package modCrafttech.common;
    
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import modCrafttech.proxy.CraftechClientProxy;
    import net.minecraft.block.Block;
    import net.minecraft.block.material.Material;
    import net.minecraft.world.IBlockAccess;
    
    public class test extends Block {
    
    public test(int id)
    {
    super(id, Material.rock);
    
    this.setCreativeTab(ModCraftech.Craftech);
    }
    
    public boolean renderAsNormalBlock()
    {
    return false;
    }
    public boolean isOpaqueCube()
    {
    return false;
    }
    @SideOnly(Side.CLIENT)
    public int getRenderType()
    {
    return CraftechClientProxy.test;
    }
    @SideOnly(Side.CLIENT)
    public boolean shouldSideBeRendered(IBlockAccess blockAccess, int x, int y, int z, int side)
    {
    return true;
    }
    }
    
    

    ClientProxy:

    package modCrafttech.proxy;
    
    import cpw.mods.fml.client.registry.RenderingRegistry;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.world.IBlockAccess;
    import net.minecraftforge.client.MinecraftForgeClient;
    
    public class CraftechClientProxy extends CraftechCommonProxy
    {
    
    public static int test;
    
    @Override
    public void registerRender()
    {
    test = RenderingRegistry.getNextAvailableRenderId();
    RenderingRegistry.registerBlockHandler(test, new RenderTable());
    //ici mes futur client registry
    
    }
    
    }
    

    RenderTable:

    package modCrafttech.proxy;
    
    import net.minecraft.block.Block;
    import net.minecraft.client.renderer.RenderBlocks;
    import net.minecraft.world.IBlockAccess;
    import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
    
    public class RenderTable implements ISimpleBlockRenderingHandler {
    
    @Override
    public void renderInventoryBlock(Block block, int metadata, int modelID,
    RenderBlocks renderer) {
    // TODO Auto-generated method stub
    
    }
    
    @Override
    public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) {
    // TODO Auto-generated method stub
    
    renderer.setRenderBounds(0.2F, 0.0F, 0.2F, 0.8F, 0.1F, 0.8F);
    renderer.renderStandardBlock(block, x, y, z);
    renderer.setRenderBounds(0.45F, 0.1F, 0.45F, 0.55F, 0.8F, 0.55F);
    renderer.renderStandardBlock(block, x, y, z);
    renderer.setRenderBounds(0.0F, 0.8F, 0.0F, 1F, 0.9F, 1F);
    renderer.renderStandardBlock(block, x, y, z);
    
    return false;
    }
    
    @Override
    public boolean shouldRender3DInInventory() {
    // TODO Auto-generated method stub
    return false;
    }
    
    @Override
    public int getRenderId() {
    // TODO Auto-generated method stub
    return 0;
    }
    
    }
    
    

    Voila j’espère que quelqu’un pourra m'aidé.

    Merci d'avance pour vos réponces.
    Cordialement Sidney


  • Administrateurs

    Qu'est-ce qui ne fonctionne pas exactement?



  • Sa ne me fais pas de rendu,quand je charge le jeux sa me laisse encore un bloc normal


  • Administrateurs

    Ceci :```java
    @Override
    public int getRenderId() {
    // TODO Auto-generated method stub
    return 0;
    }

    devient:
    ```java
    @Override
    public int getRenderId() {
    // TODO Auto-generated method stub
    return CraftechClientProxy.test;
    }
    

    où quelque chose dans le même genre.



  • Je viens de retest cela et sa ne fonctionne toujours pas. 😞


  • Administrateurs

    Suis bien le tuto, tu as du oublier des méthodes.



  • Je viens de tout regardé et j'ai touts bien fais.


  • Administrateurs

    Classe principale ?



  • La class principale en entier 🙂 :

    package modCrafttech.common;
    
    import modCrafttech.proxy.CraftechCommonProxy;
    import net.minecraft.block.Block;
    import net.minecraft.block.BlockHalfSlab;
    import net.minecraft.block.material.Material;
    import net.minecraft.creativetab.CreativeTabs;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemSlab;
    import cpw.mods.fml.common.Mod;
    import cpw.mods.fml.common.Mod.EventHandler;
    import cpw.mods.fml.common.Mod.Instance;
    import cpw.mods.fml.common.SidedProxy;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.event.FMLPostInitializationEvent;
    import cpw.mods.fml.common.event.FMLPreInitializationEvent;
    import cpw.mods.fml.common.network.NetworkMod;
    import cpw.mods.fml.common.registry.GameRegistry;
    
    @Mod(modid = "ModCraftech", name = "ModCraftech", version = "1.0.0", acceptedMinecraftVersions = "[1.6.2,)")
    @NetworkMod(clientSideRequired = true, serverSideRequired = false)
    
    public class ModCraftech
    {
    @SidedProxy(clientSide = "modCrafttech.proxy.CraftechClientProxy", serverSide = "modCrafttech.proxy.CraftechCommonProxy")
    public static CraftechCommonProxy proxy;
    
    @Instance("ModCraftech")
    public static ModCraftech instance;
    
    public static CreativeTabs Craftech = new Craftech("Craftech");
    
    public static Block test;
    
    @EventHandler
    public void PreInit(FMLPreInitializationEvent event)
    {
    
    test = new test(4011).setStepSound(Block.soundGrassFootstep).setUnlocalizedName("test").setTextureName("craftech:t22 BR");
    GameRegistry.registerBlock(test, "test");
    
    }
    
    @EventHandler
    public void Init(FMLInitializationEvent event)
    {
    
    }
    
    @EventHandler
    public void PostInit(FMLPostInitializationEvent event)
    {
    
    }
    }
    


  • Le modid ne prend pas de majuscule par précaution


  • Administrateurs

    @'isador34':

    Le modid ne prend pas de majuscule par précaution

    Rien à voir, ça ne dérange pas. J'ai dit de ne pas mettre de majuscule dans le tutoriel 1.7 tout simplement car Minecraft n'en a pas dans le game data, je dirai donc plutôt par "convention" que part "précaution"

    Le problème, c'est que tu n'appelle pas la méthode de ton proxy. Dans ta classe principale, dans la fonction init, ajoute :

    proxy.registerRender();
    

  • Administrateurs

    La méthode registerRender() devrait être appelé dans la class principale.

    Edit: Encore doublé par robin4002 😄 !



  • Ok!!
    Un grand merci à vous de m'avoir aidé !! 🙂

    J'ai une dernier question, y a il la possibilité de modifier la taille de la heatbox ?


  • Administrateurs

    Je crois que oui, mais je ne suis pas sûr.



  • Ok merci , je vais essayer de regardé



  • Oui mais c'est compliqué, faut que je retrouve comment faire



  • Merci pour ton aide 🙂



  • De rien, regarde dans les sujet que j'ai créer/répondu, on en avais parlé avec robin



  • Heuuuuu pourait tu me dire c'est quel sujet car tu en a impeux beaucoup
    XD



  • C'est quand je parle du mod de que créer, une plante avec hitbox de 2x1


Log in to reply