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 -
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
-
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.
-
Suis bien le tuto, tu as du oublier des méthodes.
-
Je viens de tout regardé et j’ai touts bien fais.
-
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
-
@‘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();
-
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 ?
-
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