Ajouter un rendu avancé à votre bloc via TESR
-
Tien je me questionner est t’il possible de mettre une texture animé sur les blocs tesr?
Je suppose que oui mais on sais jamais je demande -
En mettant plusieurs resourcelocation et en faisant un bind d’une texture différente en fonction des ticks / autres choses ça doit être faisable oui.
-
Merci pour le tutoriel, mais ma texture ne se render pas inventory tu peux m’aider ?
:::package com.harrypotter.sosoh.common; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class BlockChaudron extends Block{ protected BlockChaudron(Material Material) { super(Material); this.setCreativeTab(CreativeTabs.tabBlock); // TODO Auto-generated constructor stub } @Override public TileEntity createTileEntity(World world, int metadata) { return new TileEntityChaudron(); } @Override public boolean hasTileEntity(int metadata) { return true; } public boolean isOpaqueCube() { return false; } public boolean renderAsNormalBlock() { return false; } public int getRenderType() { return -1; } public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { this.setBlockBounds(0.1F, 0.0F, 0.1F, 0.9F, 0.8F, 0.9F); } }package com.harrypotter.sosoh.client; import org.lwjgl.opengl.GL11; import com.harrypotter.sosoh.common.ModHarryPotter; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.world.IBlockAccess; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; public class TESRInventoryRenderer implements ISimpleBlockRenderingHandler { @Override public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { if(block == ModHarryPotter.blockChaudron && metadata == 0) { GL11.glPushMatrix(); GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); GL11.glTranslatef(0.0F, -1.0F, 0.0F); GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(TileEntityChaudronSpecialRenderer.texture); TileEntityChaudronSpecialRenderer.model.renderAll(); GL11.glPopMatrix(); } } @Override public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { return false; } @Override public boolean shouldRender3DInInventory(int modelId) { return true; } @Override public int getRenderId() { return ClientProxy.tesrRenderId; } }package com.harrypotter.sosoh.client; import org.lwjgl.opengl.GL11; import com.harrypotter.sosoh.common.ModHarryPotter; import com.harrypotter.sosoh.common.TileEntityChaudron; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; public class TileEntityChaudronSpecialRenderer extends TileEntitySpecialRenderer { public static ModelChaudron model = new ModelChaudron(); public static ResourceLocation texture = new ResourceLocation(ModHarryPotter.MODID, "textures/models/blocks/model_block_chaudron.png"); public TileEntityChaudronSpecialRenderer() { this.func_147497_a(TileEntityRendererDispatcher.instance); } @Override public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float partialRenderTick) { this.renderTileEntityChaudronAt((TileEntityChaudron)tile, x, y, z, partialRenderTick); } private void renderTileEntityChaudronAt(TileEntityChaudron tile, double x, double y, double z, float partialRenderTick) { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5D, y + 1.5D, z + 0.5D); GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); GL11.glRotatef((90F * tile.getDirection()) + 180F, 0.0F, 1.0F, 0.0F); this.bindTexture(texture); model.renderAll(); GL11.glPopMatrix(); } }package com.harrypotter.sosoh.common; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.network.NetworkManager; import net.minecraft.network.Packet; import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; public class TileEntityChaudron extends TileEntity { private byte direction; @Override public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); this.direction = compound.getByte("Direction"); } @Override public void writeToNBT(NBTTagCompound compound) { super.writeToNBT(compound); compound.setByte("Direction", this.direction); } public byte getDirection() { return direction; } public void setDirection(byte direction) { this.direction = direction; this.worldObj.markBlockForUpdate(this.xCoord, this.yCoord, this.zCoord); } public Packet getDescriptionPacket() { NBTTagCompound nbttagcompound = new NBTTagCompound(); this.writeToNBT(nbttagcompound); return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 0, nbttagcompound); } public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity pkt) { this.readFromNBT(pkt.func_148857_g()); this.worldObj.markBlockRangeForRenderUpdate(this.xCoord, this.yCoord, this.zCoord, this.xCoord, this.yCoord, this.zCoord); } }//Date: 16/11/2014 16:27:03 //Template version 1.1 //Java generated by Techne //Keep in mind that you still need to fill in some blanks //- ZeuX package com.harrypotter.sosoh.client; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; public class ModelChaudron extends ModelBase { //fields ModelRenderer Base; ModelRenderer Pied1; ModelRenderer Pied2; ModelRenderer Pied3; ModelRenderer Pied4; ModelRenderer Shape1; ModelRenderer Shape2; ModelRenderer Shape3; ModelRenderer Shape4; public ModelChaudron() { textureWidth = 64; textureHeight = 64; Base = new ModelRenderer(this, 0, 0); Base.addBox(0F, 0F, 0F, 10, 1, 10); Base.setRotationPoint(-5F, 22F, -5F); Base.setTextureSize(64, 64); setRotation(Base, 0F, 0F, 0F); Pied1 = new ModelRenderer(this, 55, 3); Pied1.addBox(0F, 0F, 0F, 1, 1, 1); Pied1.setRotationPoint(5F, 23F, -6F); Pied1.setTextureSize(64, 64); setRotation(Pied1, 0F, 0F, 0F); Pied2 = new ModelRenderer(this, 55, 0); Pied2.addBox(0F, 0F, 0F, 1, 1, 1); Pied2.setRotationPoint(-6F, 23F, 5F); Pied2.setTextureSize(64, 64); setRotation(Pied2, 0F, 0F, 0F); Pied3 = new ModelRenderer(this, 55, 0); Pied3.addBox(0F, 0F, 0F, 1, 1, 1); Pied3.setRotationPoint(5F, 23F, 5F); Pied3.setTextureSize(64, 64); setRotation(Pied3, 0F, 0F, 0F); Pied4 = new ModelRenderer(this, 55, 3); Pied4.addBox(0F, 0F, 0F, 1, 1, 1); Pied4.setRotationPoint(-6F, 23F, -6F); Pied4.setTextureSize(64, 64); setRotation(Pied4, 0F, 0F, 0F); Shape1 = new ModelRenderer(this, 27, 30); Shape1.addBox(0F, 0F, 0F, 12, 11, 1); Shape1.setRotationPoint(-6F, 12F, 5F); Shape1.setTextureSize(64, 64); setRotation(Shape1, 0F, 0F, 0F); Shape2 = new ModelRenderer(this, 0, 30); Shape2.addBox(0F, 0F, 0F, 12, 11, 1); Shape2.setRotationPoint(-6F, 12F, -6F); Shape2.setTextureSize(64, 64); setRotation(Shape2, 0F, 0F, 0F); Shape3 = new ModelRenderer(this, 0, 43); Shape3.addBox(0F, 0F, 0F, 1, 11, 10); Shape3.setRotationPoint(5F, 12F, -5F); Shape3.setTextureSize(64, 64); setRotation(Shape3, 0F, 0F, 0F); Shape4 = new ModelRenderer(this, 23, 43); Shape4.addBox(0F, 0F, 0F, 1, 11, 10); Shape4.setRotationPoint(-6F, 12F, -5F); Shape4.setTextureSize(64, 64); setRotation(Shape4, 0F, 0F, 0F); } public void renderAll() { Base.render(0.0625F); Pied1.render(0.0625F); Pied2.render(0.0625F); Pied3.render(0.0625F); Pied4.render(0.0625F); Shape1.render(0.0625F); Shape2.render(0.0625F); Shape3.render(0.0625F); Shape4.render(0.0625F); } private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; } }package com.harrypotter.sosoh.client; import com.harrypotter.sosoh.common.CommonProxy; import com.harrypotter.sosoh.common.TileEntityChaudron; import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; public class ClientProxy extends CommonProxy { public static int tesrRenderId; @Override public void registerRender() { System.out.println("méthode côté client"); tesrRenderId = RenderingRegistry.getNextAvailableRenderId(); RenderingRegistry.registerBlockHandler(new TESRInventoryRenderer()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityChaudron.class, new TileEntityChaudronSpecialRenderer()); } }:::
-
Et une dernière modification, dans la classe de votre bloc, modifiez le return -1 dans la fonction getRenderType par return ClientProxy.tesrRenderId.
Dans ta classe BlockCauldron :
public int getRenderType() { return -1; }Devrait être :
public int getRenderType() { return ClientProxy.tesrRenderId; } -
Merci ^^ C’est bon c’est ok !

-
Hello, superbe tuto. Je doit avouer que c’est quelques choses de très utilise dès qu’on souhaite faire un peu plus que de l’ajout de block/item basique.
Sinon, j’aurai une petite question. Je n’ai jamais vraiment trop causé sur le forum, malgré le temps que j’y ai passé… Mais, voila, j’aimerai savoir, si on souhaite faire un rendu d’un escalier en modifiant son block bounds, comment faire pour qu’il y ai encore la jointure dans les angles ?
Ça fait un bout de temps que je cherche mais je n’ai jamais réussi a résoudre mon problème. Et disons que passer par un rendu TESR, ça me parait lourd pour juste un escalier

En espérant trouver une réponse,
Salutation a vous,
0xPic0. -
Pour un escalier custom passe plutôt par un rendu ISBRH (il y a un tutoriel 1.6, il n’y a pas beaucoup de différence).
Il suffit d’adapter le rendu en fonction des blocs autours (avec world.getBlock(x, y, z +1) == TaClassePrincipale.tonEscalier par exemple) -
Okay, merci robin. Mon rendu tourne déjà en ISBRH, c’est pour cela que je demandais si TESR était mieux ^^ . Je vais essayer de corriger mon soucis d’angle dans ce cas. Si j’y arrive alors j’arriverai a résoudre le rendu de l’escalier quand il est mit a l’envers

Je reviendrai vers vous si jamais je ne m’en sort pas mais ça devrait aller
Merci beaucoup.
0xPic0
Edit: Heu, je devait avoir la tête ailleurs, m’enfin, ce que tu m’a proposé est déjà en place. Là ou je pêche, c’est sur le rendu vers le haut et les angles. Physiquement, Steve ressent l’angle, seulement, graphiquement, ce n’est pas correct. Quand au bloc a l’envers, c’est l’affichage qui ne se fait pas. J’ai chercher dans la classe BlockStairs mais, :fuuuu: qu’est-ce que c’est le bordel toutes des méthodes sans doc et sans nomination intelligente ^^, j’espère trouver

-
Plop!

J’ai comme qui dirait un p’tit problème avec TESR : ma méthode renderTileEntityAt(TileEntity, double, double, double, float) n’est jamais appelée…
J’ai vérifié avec des System.out.println, c’est bien à partir de là que ça marche pas; le bloc est là, la hitbox est visible, mais aucun rendu, aucune texture, il est totalement invisible…
Mon code
Mon ClientProxy
:::package sasukz.htmc.proxy; import sasukz.htmc.blocks.tileentities.TECopperCable; import sasukz.htmc.client.rendering.TESRCopperCable; import cpw.mods.fml.client.registry.ClientRegistry; public class ClientProxy extends CommonProxy { @Override public void registerRender() { System.out.println("[DEBUG] TESR chargé"); ClientRegistry.bindTileEntitySpecialRenderer(TECopperCable.class, new TESRCopperCable()); } }:::
Mon TileEntity
:::package sasukz.htmc.blocks.tileentities; import java.util.ArrayList; import net.minecraft.block.Block; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import sasukz.htmc.blocks.tileentities.utils.TEElectrical; import sasukz.htmc.common.HTMC; public class TECopperCable extends TEElectrical { public ArrayList <forgedirection>getConnections() { System.out.println("[DEBUG] Méthode getConnections() appelée"); ArrayList <forgedirection>r = new ArrayList<forgedirection>(); Block cc = HTMC.t_CopperCable; World w = getWorldObj(); if (w.getBlock(xCoord, yCoord+1, zCoord).equals(cc)) r.add(ForgeDirection.UP); if (w.getBlock(xCoord, yCoord-1, zCoord).equals(cc)) r.add(ForgeDirection.DOWN); if (w.getBlock(xCoord+1, yCoord, zCoord).equals(cc)) r.add(ForgeDirection.EAST); if (w.getBlock(xCoord-1, yCoord, zCoord).equals(cc)) r.add(ForgeDirection.WEST); if (w.getBlock(xCoord, yCoord, zCoord+1).equals(cc)) r.add(ForgeDirection.SOUTH); if (w.getBlock(xCoord, yCoord, zCoord-1).equals(cc)) r.add(ForgeDirection.NORTH); return r; } @Override public int getMaxEnergy() { return 128; } @Override public int getMinPower() { return 2; } @Override public int getMaxPower() { return 64; } }:::
Mon TESR
:::package sasukz.htmc.client.rendering; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; import sasukz.htmc.blocks.tileentities.TECopperCable; import sasukz.htmc.common.HTMC; import sasukz.htmc.models.ModelCopperCable; public class TESRCopperCable extends TileEntitySpecialRenderer { public static ModelCopperCable model = new ModelCopperCable(); public static ResourceLocation texture = new ResourceLocation(HTMC.MODID, "textures/models/blocks/copper_cable.png"); @Override public void renderTileEntityAt(TileEntity te, double x, double y, double z, float partialRenderTick) { System.out.println("[HTMC] Méthode renderTileEntityAt() appelée"); GL11.glPushMatrix(); GL11.glTranslated(x + 0.5D, y + 1.5D, z + 0.5D); GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); bindTexture(texture); model.renderAll((TECopperCable)te); GL11.glPopMatrix(); } }:::
Merci d’avance :)</forgedirection></forgedirection></forgedirection>
-
Ton bloc ? Ta classe principale ?
-
Mon bloc
:::package sasukz.htmc.blocks; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; import sasukz.htmc.blocks.tileentities.TECopperCable; import sasukz.htmc.common.HTMC; public class BlockCopperCable extends Block { public BlockCopperCable(Material m) { super(m); setHardness(0.5F); setResistance(0.0F); setBlockName("copper_cable"); setCreativeTab(HTMC.ctab_mach); } @Override public boolean hasTileEntity() { return true; } @Override public TileEntity createTileEntity(World world, int metadata) { return new TECopperCable(); } @Override public boolean isOpaqueCube() { return false; } @Override public boolean renderAsNormalBlock() { return false; } @Override public int getRenderType() { return -1; } }:::
Ma classe principale
:::package sasukz.htmc.common; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import sasukz.htmc.blocks.BlockCombiner; import sasukz.htmc.blocks.BlockCopperCable; import sasukz.htmc.blocks.BlockMacerator; import sasukz.htmc.blocks.BlockOreAluminum; import sasukz.htmc.blocks.BlockOreCopper; import sasukz.htmc.blocks.BlockOreLead; import sasukz.htmc.blocks.BlockOreSilicon; import sasukz.htmc.blocks.BlockOreSilver; import sasukz.htmc.blocks.BlockOreTin; import sasukz.htmc.blocks.BlockOreUranium; import sasukz.htmc.blocks.tileentities.TECombiner; import sasukz.htmc.blocks.tileentities.TECopperCable; import sasukz.htmc.blocks.tileentities.TEMacerator; import sasukz.htmc.generation.HTMCWorldGen; import sasukz.htmc.items.ItemAluminumPlate; import sasukz.htmc.items.ItemBasicCircuit; import sasukz.htmc.items.ItemDustAluminum; import sasukz.htmc.items.ItemDustCopper; import sasukz.htmc.items.ItemDustLead; import sasukz.htmc.items.ItemDustSilver; import sasukz.htmc.items.ItemDustTin; import sasukz.htmc.items.ItemIngotAluminum; import sasukz.htmc.items.ItemIngotBronze; import sasukz.htmc.items.ItemIngotCopper; import sasukz.htmc.items.ItemIngotLead; import sasukz.htmc.items.ItemIngotSilver; import sasukz.htmc.items.ItemIngotTin; import sasukz.htmc.items.ItemSilicon; import sasukz.htmc.items.ItemWrench; import sasukz.htmc.network.HTMCGUIHandler; import sasukz.htmc.proxy.CommonProxy; 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.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @Mod(modid="htmc", name="HTMC Mod", version="MC 1.7.10") public class HTMC { @Instance("htmc") public static HTMC instance; @SidedProxy(clientSide="sasukz.htmc.proxy.ClientProxy", serverSide="sasukz.htmc.proxy.CommonProxy") public static CommonProxy proxy; public static final String MODID = "htmc"; public static HTMCWorldGen worldgen = new HTMCWorldGen(); public static Block t_TinOre; public static Block t_CopperOre; public static Block t_SilverOre; public static Block t_UraniumOre; public static Block t_LeadOre; public static Block t_AluminumOre; public static Block t_SiliconOre; public static Block t_Combiner; public static Block t_Macerator; public static Block t_CopperCable; public static Item i_CopperIngot; public static Item i_TinIngot; public static Item i_SilverIngot; public static Item i_LeadIngot; public static Item i_AluminumIngot; public static Item i_BronzeIngot; public static Item i_Silicon; public static Item i_AluminumPlate; public static Item i_BasicCircuit; public static Item i_Wrench; public static Item i_CopperDust; public static Item i_TinDust; public static Item i_AluminumDust; public static Item i_LeadDust; public static Item i_SilverDust; public static CreativeTabs ctab_mat = new CreativeTabs("htmc_materials") { @Override public Item getTabIconItem() { return HTMC.i_CopperIngot; } @SideOnly(Side.CLIENT) public int func_151243_f() { return 0; } }; public static CreativeTabs ctab_comp = new CreativeTabs("htmc_components") { @Override public Item getTabIconItem() { return HTMC.i_BasicCircuit; } @SideOnly(Side.CLIENT) public int func_151243_f() { return 0; } }; public static CreativeTabs ctab_mach = new CreativeTabs("htmc_machines") { @Override public Item getTabIconItem() { return Item.getItemFromBlock(HTMC.t_Combiner); } @SideOnly(Side.CLIENT) public int func_151243_f() { return 0; } }; @EventHandler public static void preInit(FMLPreInitializationEvent e) { GameRegistry.registerWorldGenerator(worldgen, 0); // BLOCKS –- t_TinOre = new BlockOreTin(Material.rock); GameRegistry.registerBlock(t_TinOre, "ore_tin"); t_CopperOre = new BlockOreCopper(Material.rock); GameRegistry.registerBlock(t_CopperOre, "ore_copper"); t_SilverOre = new BlockOreSilver(Material.rock); GameRegistry.registerBlock(t_SilverOre, "ore_silver"); t_UraniumOre = new BlockOreUranium(Material.rock); GameRegistry.registerBlock(t_UraniumOre, "ore_uranium"); t_LeadOre = new BlockOreLead(Material.rock); GameRegistry.registerBlock(t_LeadOre, "ore_lead"); t_AluminumOre = new BlockOreAluminum(Material.rock); GameRegistry.registerBlock(t_AluminumOre, "ore_aluminum"); t_SiliconOre = new BlockOreSilicon(Material.rock); GameRegistry.registerBlock(t_SiliconOre, "ore_silicon"); t_Combiner = new BlockCombiner(Material.rock); GameRegistry.registerBlock(t_Combiner, "combiner"); t_Macerator = new BlockMacerator(Material.rock); GameRegistry.registerBlock(t_Macerator, "macerator"); t_CopperCable = new BlockCopperCable(Material.iron); GameRegistry.registerBlock(t_CopperCable, "copper_cable"); // ITEMS --- i_CopperIngot = new ItemIngotCopper(); GameRegistry.registerItem(i_CopperIngot, "ingot_copper"); i_TinIngot = new ItemIngotTin(); GameRegistry.registerItem(i_TinIngot, "ingot_tin"); i_SilverIngot = new ItemIngotSilver(); GameRegistry.registerItem(i_SilverIngot, "ingot_silver"); i_LeadIngot = new ItemIngotLead(); GameRegistry.registerItem(i_LeadIngot, "ingot_lead"); i_AluminumIngot = new ItemIngotAluminum(); GameRegistry.registerItem(i_AluminumIngot, "ingot_aluminum"); i_Silicon = new ItemSilicon(); GameRegistry.registerItem(i_Silicon, "silicon"); i_BasicCircuit = new ItemBasicCircuit(); GameRegistry.registerItem(i_BasicCircuit, "basic_circuit"); i_AluminumPlate = new ItemAluminumPlate(); GameRegistry.registerItem(i_AluminumPlate, "aluminum_plate"); i_Wrench = new ItemWrench(); GameRegistry.registerItem(i_Wrench, "wrench"); i_CopperDust = new ItemDustCopper(); GameRegistry.registerItem(i_CopperDust, "dust_copper"); i_TinDust = new ItemDustTin(); GameRegistry.registerItem(i_TinDust, "dust_tin"); i_BronzeIngot = new ItemIngotBronze(); GameRegistry.registerItem(i_BronzeIngot, "ingot_bronze"); i_AluminumDust = new ItemDustAluminum(); GameRegistry.registerItem(i_AluminumDust, "dust_aluminum"); i_LeadDust = new ItemDustLead(); GameRegistry.registerItem(i_LeadDust, "dust_lead"); i_SilverDust = new ItemDustSilver(); GameRegistry.registerItem(i_SilverDust, "dust_silver"); } @EventHandler public static void init(FMLInitializationEvent e) { proxy.registerRender(); GameRegistry.registerTileEntity(TECombiner.class, MODID+":combiner"); GameRegistry.registerTileEntity(TEMacerator.class, MODID+":macerator"); System.out.println("[DEBUG] TileEntity enregistré."); GameRegistry.registerTileEntity(TECopperCable.class, MODID+":copper_cable"); HTMCRecipes.addRecipes(); HTMCRecipes.addSmeltings(); } @EventHandler public static void postInit(FMLPostInitializationEvent e) { NetworkRegistry.INSTANCE.registerGuiHandler(instance, new HTMCGUIHandler()); } }:::
-
Je ne vois aucun problème, essaye de créer un nouveau monde puis de replacer des blocs.
Le seul truc que je trouve étrange, c’est que tes fonctions init, preInit sont statics dans ta classe principale, normalement il n’y a pas besoin. -
ça marche toujours pas

Je suis certain que le problème vient de mon TESR, la méthode est jamais appelée.
-
Pourtant ton TESR est bien enregistré dans le client proxy, à la limite envoie un zip de ton dossier src, je vais regarder quand j’aurai le temps.
-
Bonjour,
J’ai donc ajouté un rendu Techne à mon bloc grâce au super tuto de robin mais j’ai un soucis quand je regarde mon block dans mon mod je lag énormément …
Par déduction je pense que ceci vient du nombre de tick par seconde et je voudrais savoir si il était possible de le diminuer.
et si oui comment.
Merci d’avance
-
Il me semble pas que ce soit possible de réduire ça.
Ton modèle ressemble à quoi ? Car j’ai jamais eu de grosse chute de fps à cause d’un TESR … -
Arf mon modèle est petit mais à 240 parties sous techne …
Tu pense que le problème vient de la ?
-
Surement oui, 240 ça fait beaucoup.
-
Pas d’autre moyen de créer un block avec un modèle techne ?
Car passer par un Tilentity alors que mon block n’a rien de particulier apart le modèle…
-
Il y a les rendus ISBRH mais ça ne passe par un modèle.