Posted October 30, 201311 yr Hi! I created some spikes with a Tile Entity to render them with a special Model, but the Block is just rendered as a transparent cube. What have I done wrong? source: ModBlockSpikes: package mod.minecraft.blocks; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.entity.Entity; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.DamageSource; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; public class ModBlockSpikes extends ModBlock { public ModBlockSpikes(int ID, Material material, boolean setCreativeTab) { super(ID, material, setCreativeTab); } public ModBlockSpikes(int ID, Material material) { super(ID, material); } @Override public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity) { par5Entity.attackEntityFrom(DamageSource.cactus, 1); } @Override public int getMobilityFlag() { return 0; } @Override public TileEntity createTileEntity(World world, int Metadata) { return new TileEntitySpikes(); } @Override public int getRenderType() { return -1; } @Override public boolean isOpaqueCube() { return false; } public boolean renderAsNormalBlock() { return false; } } ModBlock: (You don't really need to look at this, the block is correctly registered) package mod.minecraft.blocks; import cpw.mods.fml.common.FMLLog; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import mod.Resources; import mod.minecraft.items.ModItem; import net.minecraft.block.Block; import net.minecraft.block.StepSound; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.world.World; public class ModBlock extends Block{ public static ModBlockSpikes spikes; public static void init(int ID) { spikes = ((ModBlockSpikes)(new ModBlockSpikes(ID, Material.iron)._setUp("spikes", 5, 9, soundMetalFootstep)._setCreativeTab(Resources.TAB_WEAPONS))); } //============================================================================================= //============================================================================================= /** * Creates a Block and places it in the {@link Resources.DEFAULT_TAB} of the Mod * @param ID * @param material */ public ModBlock(int ID, Material material) { super(ID, material); this._setCreativeTab(Resources.DEFAULT_TAB); } /** * Creates a Block and places it in the {@link Resources.DEFAULT_TAB} of the Mod if {@code setCreativeTab} is true * @param ID * @param material * @param setCreativeTab */ public ModBlock(int ID, Material material, boolean setCreativeTab){ super(ID, material); if (setCreativeTab) this._setCreativeTab(Resources.DEFAULT_TAB); } /** * Sets the sound when stepping over the block * @param sound * @return Returns the Object for convenience in constructing. */ public ModBlock _setStepSound(StepSound sound) { return (ModBlock) super.setStepSound(sound); } /** * Sets the light opacity of the Block. * @param opacity * @return Returns the Object for convenience in constructing. */ public ModBlock _setLightOpacity(int opacity) { return (ModBlock) super.setLightOpacity(opacity); } /** * Sets the light the Block emits. * @param lightEmittance * @return Returns the Object for convenience in constructing. */ public ModBlock _setLightValue(float lightEmittance) { return (ModBlock) super.setLightValue(lightEmittance); } /** * Sets how resistant the Block is to Explosions * @param resistance * @return Returns the Object for convenience in constructing. */ public ModBlock _setResistance(float resistance) { return (ModBlock) super.setResistance(resistance); } /** * Sets how long you need to punch the Block till it breakes. * @param hardness * @return Returns the Object for convenience in constructing. */ public ModBlock _setHardness(float hardness) { return (ModBlock) super.setHardness(hardness); } /** * Makes this Block unbreakable. (Only for Bedrock) * @return Returns the Object for convenience in constructing. */ public ModBlock _setBlockUnbreakable() { return (ModBlock) super.setBlockUnbreakable(); } /** * Sets the name to call the Block internally. * @param unlocalizedName * @return Returns the Object for convenience in constructing. */ public ModBlock _setUnlocalizedName(String unlocalizedName) { return (ModBlock) super.setUnlocalizedName(unlocalizedName); } /** * Sets the CreativeTab to display the Block on. * @param creativeTab * @return Returns the Object for convenience in constructing. */ public ModBlock _setCreativeTab(CreativeTabs creativeTab) { return (ModBlock) super.setCreativeTab(creativeTab); } /** * Registers the Block to the Game. Must be done after setting the unlocalized Name. * @return Returns the Object for convenience in constructing. */ public ModBlock _register(){ GameRegistry.registerBlock(this, this.getUnlocalizedName()); return this; } /** * Sets the Texture of the Block. The Texture will be the unlocalized Name. * @return Returns the Object for convenience in constructing. */ public ModBlock _setDefaultTexture(){ _setTexture(this.getUnlocalizedName().substring(this.getUnlocalizedName().indexOf(".") + 1)); return this; } /** * Sets the Texture of the Block. * @param textureName * @return Returns the Object for convenience in constructing. */ public ModBlock _setTexture(String textureName) { this.setTextureName(Resources.MOD_ID.toLowerCase() + ":" + textureName); return this; } /** * Does multiple settings to the Block: * {@link #_setUnlocalizedName(String)}; {@link #_setHardness(float)}; {@link #_setResistance(float)}; {@link #_setStepSound(StepSound)}; * {@link #_setDefaultTexture()} and {@link #_register()} * @param unlocalizedName Name of the Block. * @param hardness How much time it needs to break the Block * @param resistance How resistant is the Block to explosions * @param stepSound Sound of stepping on the Block. * @return Returns the Object for convenience in constructing. */ public ModBlock _setUp(String unlocalizedName, float hardness, float resistance, StepSound stepSound) { _setUnlocalizedName(unlocalizedName); _setHardness(hardness); _setResistance(resistance); _setStepSound(stepSound); _setDefaultTexture(); _register(); return this; } } TileEntitySpikes: package mod.minecraft.blocks; import net.minecraft.tileentity.TileEntity; public class TileEntitySpikes extends TileEntity { } RenderBlockSpikes: package mod.minecraft.block.renderer; import mod.Resources; import mod.minecraft.blocks.models.ModBlockSpikesModel; import net.minecraft.block.Block; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.entity.Entity; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import org.lwjgl.opengl.GL11; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class RenderBlockSpikes extends TileEntitySpecialRenderer { //The model of your block private final ModBlockSpikesModel model; public RenderBlockSpikes() { this.model = new ModBlockSpikesModel(); } private void adjustRotatePivotViaMeta(World world, int x, int y, int z) { int meta = world.getBlockMetadata(x, y, z); GL11.glPushMatrix(); GL11.glRotatef(meta * (-90), 0.0F, 0.0F, 1.0F); GL11.glPopMatrix(); System.out.println("CALLED"); } @Override public void renderTileEntityAt(TileEntity te, double x, double y, double z, float scale) { GL11.glPushMatrix(); GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); this.bindTexture(new ResourceLocation("weaponcraft:textures/blocks/SpikesModel.png")); GL11.glPushMatrix(); GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); this.model.render((Entity)null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F); GL11.glPopMatrix(); GL11.glPopMatrix(); System.out.println("CALLED"); } //Set the lighting stuff, so it changes it's brightness properly. private void adjustLightFixture(World world, int i, int j, int k, Block block) { Tessellator tess = Tessellator.instance; float brightness = block.getBlockBrightness(world, i, j, k); int skyLight = world.getLightBrightnessForSkyBlocks(i, j, k, 0); int modulousModifier = skyLight % 65536; int divModifier = skyLight / 65536; tess.setColorOpaque_F(brightness, brightness, brightness); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float) modulousModifier, divModifier); System.out.println("CALLED"); } } The Model: package mod.minecraft.blocks.models; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; public class ModBlockSpikesModel extends ModelBase { //fields ModelRenderer Shape1; ModelRenderer Shape2; ModelRenderer Shape3; ModelRenderer Shape4; ModelRenderer Shape5; ModelRenderer Shape6; ModelRenderer Shape7; ModelRenderer Shape8; ModelRenderer Shape12; ModelRenderer Shape13; ModelRenderer Shape14; ModelRenderer Shape15; ModelRenderer Shape16; ModelRenderer Shape17; ModelRenderer Shape18; ModelRenderer Shape22; ModelRenderer Shape23; ModelRenderer Shape24; ModelRenderer Shape25; ModelRenderer Shape26; ModelRenderer Shape27; ModelRenderer Shape28; ModelRenderer Shape32; ModelRenderer Shape33; ModelRenderer Shape34; ModelRenderer Shape35; ModelRenderer Shape36; ModelRenderer Shape37; ModelRenderer Shape38; ModelRenderer Shape42; ModelRenderer Shape43; ModelRenderer Shape44; ModelRenderer Shape45; ModelRenderer Shape46; ModelRenderer Shape47; ModelRenderer Shape48; ModelRenderer Shape52; ModelRenderer Shape53; ModelRenderer Shape54; ModelRenderer Shape55; ModelRenderer Shape56; ModelRenderer Shape57; ModelRenderer Shape58; ModelRenderer Shape62; ModelRenderer Shape63; ModelRenderer Shape64; ModelRenderer Shape65; ModelRenderer Shape66; ModelRenderer Shape67; ModelRenderer Shape68; public ModBlockSpikesModel() { textureWidth = 64; textureHeight = 64; Shape1 = new ModelRenderer(this, 0, 3); Shape1.addBox(0F, 0F, 0F, 16, 1, 16); Shape1.setRotationPoint(-8F, 0F, -8F); Shape1.setTextureSize(64, 64); Shape1.mirror = true; setRotation(Shape1, 0F, 0F, 0F); Shape2 = new ModelRenderer(this, 0, 0); Shape2.addBox(0F, 0F, 0F, 1, 2, 1); Shape2.setRotationPoint(-6.466667F, -2F, -6.466667F); Shape2.setTextureSize(64, 64); Shape2.mirror = true; setRotation(Shape2, -0.0174533F, 0F, 0F); Shape3 = new ModelRenderer(this, 0, 0); Shape3.addBox(0F, 0F, 0F, 1, 2, 1); Shape3.setRotationPoint(-4.466667F, -2F, -6.466667F); Shape3.setTextureSize(64, 64); Shape3.mirror = true; setRotation(Shape3, -0.0174533F, 0F, 0F); Shape4 = new ModelRenderer(this, 0, 0); Shape4.addBox(0F, 0F, 0F, 1, 2, 1); Shape4.setRotationPoint(-2.466667F, -2F, -6.466667F); Shape4.setTextureSize(64, 64); Shape4.mirror = true; setRotation(Shape4, -0.0174533F, 0F, 0F); Shape5 = new ModelRenderer(this, 0, 0); Shape5.addBox(0F, 0F, 0F, 1, 2, 1); Shape5.setRotationPoint(-0.4666667F, -2F, -6.466667F); Shape5.setTextureSize(64, 64); Shape5.mirror = true; setRotation(Shape5, -0.0174533F, 0F, 0F); Shape6 = new ModelRenderer(this, 0, 0); Shape6.addBox(0F, 0F, 0F, 1, 2, 1); Shape6.setRotationPoint(1.533333F, -2F, -6.466667F); Shape6.setTextureSize(64, 64); Shape6.mirror = true; setRotation(Shape6, -0.0174533F, 0F, 0F); Shape7 = new ModelRenderer(this, 0, 0); Shape7.addBox(0F, 0F, 0F, 1, 2, 1); Shape7.setRotationPoint(3.533333F, -2F, -6.466667F); Shape7.setTextureSize(64, 64); Shape7.mirror = true; setRotation(Shape7, -0.0174533F, 0F, 0F); Shape8 = new ModelRenderer(this, 0, 0); Shape8.addBox(0F, 0F, 0F, 1, 2, 1); Shape8.setRotationPoint(5.533333F, -2F, -6.466667F); Shape8.setTextureSize(64, 64); Shape8.mirror = true; setRotation(Shape8, -0.0174533F, 0F, 0F); Shape12 = new ModelRenderer(this, 0, 0); Shape12.addBox(0F, 0F, 0F, 1, 2, 1); Shape12.setRotationPoint(-6.466667F, -2F, 5.533333F); Shape12.setTextureSize(64, 64); Shape12.mirror = true; setRotation(Shape12, -0.0174533F, 0F, 0F); Shape13 = new ModelRenderer(this, 0, 0); Shape13.addBox(0F, 0F, 0F, 1, 2, 1); Shape13.setRotationPoint(-4.466667F, -2F, 5.533333F); Shape13.setTextureSize(64, 64); Shape13.mirror = true; setRotation(Shape13, -0.0174533F, 0F, 0F); Shape14 = new ModelRenderer(this, 0, 0); Shape14.addBox(0F, 0F, 0F, 1, 2, 1); Shape14.setRotationPoint(-2.466667F, -2F, 5.533333F); Shape14.setTextureSize(64, 64); Shape14.mirror = true; setRotation(Shape14, -0.0174533F, 0F, 0F); Shape15 = new ModelRenderer(this, 0, 0); Shape15.addBox(0F, 0F, 0F, 1, 2, 1); Shape15.setRotationPoint(-0.4666667F, -2F, 5.533333F); Shape15.setTextureSize(64, 64); Shape15.mirror = true; setRotation(Shape15, -0.0174533F, 0F, 0F); Shape16 = new ModelRenderer(this, 0, 0); Shape16.addBox(0F, 0F, 0F, 1, 2, 1); Shape16.setRotationPoint(1.533333F, -2F, 5.533333F); Shape16.setTextureSize(64, 64); Shape16.mirror = true; setRotation(Shape16, -0.0174533F, 0F, 0F); Shape17 = new ModelRenderer(this, 0, 0); Shape17.addBox(0F, 0F, 0F, 1, 2, 1); Shape17.setRotationPoint(3.533333F, -2F, 5.533333F); Shape17.setTextureSize(64, 64); Shape17.mirror = true; setRotation(Shape17, -0.0174533F, 0F, 0F); Shape18 = new ModelRenderer(this, 0, 0); Shape18.addBox(0F, 0F, 0F, 1, 2, 1); Shape18.setRotationPoint(5.533333F, -2F, 5.533333F); Shape18.setTextureSize(64, 64); Shape18.mirror = true; setRotation(Shape18, -0.0174533F, 0F, 0F); Shape22 = new ModelRenderer(this, 0, 0); Shape22.addBox(0F, 0F, 0F, 1, 2, 1); Shape22.setRotationPoint(-6.466667F, -2F, 3.533333F); Shape22.setTextureSize(64, 64); Shape22.mirror = true; setRotation(Shape22, -0.0174533F, 0F, 0F); Shape23 = new ModelRenderer(this, 0, 0); Shape23.addBox(0F, 0F, 0F, 1, 2, 1); Shape23.setRotationPoint(-4.466667F, -2F, 3.533333F); Shape23.setTextureSize(64, 64); Shape23.mirror = true; setRotation(Shape23, -0.0174533F, 0F, 0F); Shape24 = new ModelRenderer(this, 0, 0); Shape24.addBox(0F, 0F, 0F, 1, 2, 1); Shape24.setRotationPoint(-2.466667F, -2F, 3.533333F); Shape24.setTextureSize(64, 64); Shape24.mirror = true; setRotation(Shape24, -0.0174533F, 0F, 0F); Shape25 = new ModelRenderer(this, 0, 0); Shape25.addBox(0F, 0F, 0F, 1, 2, 1); Shape25.setRotationPoint(-0.4666667F, -2F, 3.533333F); Shape25.setTextureSize(64, 64); Shape25.mirror = true; setRotation(Shape25, -0.0174533F, 0F, 0F); Shape26 = new ModelRenderer(this, 0, 0); Shape26.addBox(0F, 0F, 0F, 1, 2, 1); Shape26.setRotationPoint(1.533333F, -2F, 3.533333F); Shape26.setTextureSize(64, 64); Shape26.mirror = true; setRotation(Shape26, -0.0174533F, 0F, 0F); Shape27 = new ModelRenderer(this, 0, 0); Shape27.addBox(0F, 0F, 0F, 1, 2, 1); Shape27.setRotationPoint(3.533333F, -2F, 3.533333F); Shape27.setTextureSize(64, 64); Shape27.mirror = true; setRotation(Shape27, -0.0174533F, 0F, 0F); Shape28 = new ModelRenderer(this, 0, 0); Shape28.addBox(0F, 0F, 0F, 1, 2, 1); Shape28.setRotationPoint(5.533333F, -2F, 3.533333F); Shape28.setTextureSize(64, 64); Shape28.mirror = true; setRotation(Shape28, -0.0174533F, 0F, 0F); Shape32 = new ModelRenderer(this, 0, 0); Shape32.addBox(0F, 0F, 0F, 1, 2, 1); Shape32.setRotationPoint(-6.466667F, -2F, 1.533333F); Shape32.setTextureSize(64, 64); Shape32.mirror = true; setRotation(Shape32, -0.0174533F, 0F, 0F); Shape33 = new ModelRenderer(this, 0, 0); Shape33.addBox(0F, 0F, 0F, 1, 2, 1); Shape33.setRotationPoint(-4.466667F, -2F, 1.533333F); Shape33.setTextureSize(64, 64); Shape33.mirror = true; setRotation(Shape33, -0.0174533F, 0F, 0F); Shape34 = new ModelRenderer(this, 0, 0); Shape34.addBox(0F, 0F, 0F, 1, 2, 1); Shape34.setRotationPoint(-2.466667F, -2F, 1.533333F); Shape34.setTextureSize(64, 64); Shape34.mirror = true; setRotation(Shape34, -0.0174533F, 0F, 0F); Shape35 = new ModelRenderer(this, 0, 0); Shape35.addBox(0F, 0F, 0F, 1, 2, 1); Shape35.setRotationPoint(-0.4666667F, -2F, 1.533333F); Shape35.setTextureSize(64, 64); Shape35.mirror = true; setRotation(Shape35, -0.0174533F, 0F, 0F); Shape36 = new ModelRenderer(this, 0, 0); Shape36.addBox(0F, 0F, 0F, 1, 2, 1); Shape36.setRotationPoint(1.533333F, -2F, 1.533333F); Shape36.setTextureSize(64, 64); Shape36.mirror = true; setRotation(Shape36, -0.0174533F, 0F, 0F); Shape37 = new ModelRenderer(this, 0, 0); Shape37.addBox(0F, 0F, 0F, 1, 2, 1); Shape37.setRotationPoint(3.533333F, -2F, 1.533333F); Shape37.setTextureSize(64, 64); Shape37.mirror = true; setRotation(Shape37, -0.0174533F, 0F, 0F); Shape38 = new ModelRenderer(this, 0, 0); Shape38.addBox(0F, 0F, 0F, 1, 2, 1); Shape38.setRotationPoint(5.533333F, -2F, 1.533333F); Shape38.setTextureSize(64, 64); Shape38.mirror = true; setRotation(Shape38, -0.0174533F, 0F, 0F); Shape42 = new ModelRenderer(this, 0, 0); Shape42.addBox(0F, 0F, 0F, 1, 2, 1); Shape42.setRotationPoint(-6.466667F, -2F, -0.4666667F); Shape42.setTextureSize(64, 64); Shape42.mirror = true; setRotation(Shape42, -0.0174533F, 0F, 0F); Shape43 = new ModelRenderer(this, 0, 0); Shape43.addBox(0F, 0F, 0F, 1, 2, 1); Shape43.setRotationPoint(-4.466667F, -2F, -0.4666667F); Shape43.setTextureSize(64, 64); Shape43.mirror = true; setRotation(Shape43, -0.0174533F, 0F, 0F); Shape44 = new ModelRenderer(this, 0, 0); Shape44.addBox(0F, 0F, 0F, 1, 2, 1); Shape44.setRotationPoint(-2.466667F, -2F, -0.4666667F); Shape44.setTextureSize(64, 64); Shape44.mirror = true; setRotation(Shape44, -0.0174533F, 0F, 0F); Shape45 = new ModelRenderer(this, 0, 0); Shape45.addBox(0F, 0F, 0F, 1, 2, 1); Shape45.setRotationPoint(-0.4666667F, -2F, -0.4666667F); Shape45.setTextureSize(64, 64); Shape45.mirror = true; setRotation(Shape45, -0.0174533F, 0F, 0F); Shape46 = new ModelRenderer(this, 0, 0); Shape46.addBox(0F, 0F, 0F, 1, 2, 1); Shape46.setRotationPoint(1.533333F, -2F, -0.4666667F); Shape46.setTextureSize(64, 64); Shape46.mirror = true; setRotation(Shape46, -0.0174533F, 0F, 0F); Shape47 = new ModelRenderer(this, 0, 0); Shape47.addBox(0F, 0F, 0F, 1, 2, 1); Shape47.setRotationPoint(3.533333F, -2F, -0.4666667F); Shape47.setTextureSize(64, 64); Shape47.mirror = true; setRotation(Shape47, -0.0174533F, 0F, 0F); Shape48 = new ModelRenderer(this, 0, 0); Shape48.addBox(0F, 0F, 0F, 1, 2, 1); Shape48.setRotationPoint(5.533333F, -2F, -0.4666667F); Shape48.setTextureSize(64, 64); Shape48.mirror = true; setRotation(Shape48, -0.0174533F, 0F, 0F); Shape52 = new ModelRenderer(this, 0, 0); Shape52.addBox(0F, 0F, 0F, 1, 2, 1); Shape52.setRotationPoint(-6.466667F, -2F, -2.466667F); Shape52.setTextureSize(64, 64); Shape52.mirror = true; setRotation(Shape52, -0.0174533F, 0F, 0F); Shape53 = new ModelRenderer(this, 0, 0); Shape53.addBox(0F, 0F, 0F, 1, 2, 1); Shape53.setRotationPoint(-4.466667F, -2F, -2.466667F); Shape53.setTextureSize(64, 64); Shape53.mirror = true; setRotation(Shape53, -0.0174533F, 0F, 0F); Shape54 = new ModelRenderer(this, 0, 0); Shape54.addBox(0F, 0F, 0F, 1, 2, 1); Shape54.setRotationPoint(-2.466667F, -2F, -2.466667F); Shape54.setTextureSize(64, 64); Shape54.mirror = true; setRotation(Shape54, -0.0174533F, 0F, 0F); Shape55 = new ModelRenderer(this, 0, 0); Shape55.addBox(0F, 0F, 0F, 1, 2, 1); Shape55.setRotationPoint(-0.4666667F, -2F, -2.466667F); Shape55.setTextureSize(64, 64); Shape55.mirror = true; setRotation(Shape55, -0.0174533F, 0F, 0F); Shape56 = new ModelRenderer(this, 0, 0); Shape56.addBox(0F, 0F, 0F, 1, 2, 1); Shape56.setRotationPoint(1.533333F, -2F, -2.466667F); Shape56.setTextureSize(64, 64); Shape56.mirror = true; setRotation(Shape56, -0.0174533F, 0F, 0F); Shape57 = new ModelRenderer(this, 0, 0); Shape57.addBox(0F, 0F, 0F, 1, 2, 1); Shape57.setRotationPoint(3.533333F, -2F, -2.466667F); Shape57.setTextureSize(64, 64); Shape57.mirror = true; setRotation(Shape57, -0.0174533F, 0F, 0F); Shape58 = new ModelRenderer(this, 0, 0); Shape58.addBox(0F, 0F, 0F, 1, 2, 1); Shape58.setRotationPoint(5.533333F, -2F, -2.466667F); Shape58.setTextureSize(64, 64); Shape58.mirror = true; setRotation(Shape58, -0.0174533F, 0F, 0F); Shape62 = new ModelRenderer(this, 0, 0); Shape62.addBox(0F, 0F, 0F, 1, 2, 1); Shape62.setRotationPoint(-6.466667F, -2F, -4.466667F); Shape62.setTextureSize(64, 64); Shape62.mirror = true; setRotation(Shape62, -0.0174533F, 0F, 0F); Shape63 = new ModelRenderer(this, 0, 0); Shape63.addBox(0F, 0F, 0F, 1, 2, 1); Shape63.setRotationPoint(-4.466667F, -2F, -4.466667F); Shape63.setTextureSize(64, 64); Shape63.mirror = true; setRotation(Shape63, -0.0174533F, 0F, 0F); Shape64 = new ModelRenderer(this, 0, 0); Shape64.addBox(0F, 0F, 0F, 1, 2, 1); Shape64.setRotationPoint(-2.466667F, -2F, -4.466667F); Shape64.setTextureSize(64, 64); Shape64.mirror = true; setRotation(Shape64, -0.0174533F, 0F, 0F); Shape65 = new ModelRenderer(this, 0, 0); Shape65.addBox(0F, 0F, 0F, 1, 2, 1); Shape65.setRotationPoint(-0.4666667F, -2F, -4.466667F); Shape65.setTextureSize(64, 64); Shape65.mirror = true; setRotation(Shape65, -0.0174533F, 0F, 0F); Shape66 = new ModelRenderer(this, 0, 0); Shape66.addBox(0F, 0F, 0F, 1, 2, 1); Shape66.setRotationPoint(1.533333F, -2F, -4.466667F); Shape66.setTextureSize(64, 64); Shape66.mirror = true; setRotation(Shape66, -0.0174533F, 0F, 0F); Shape67 = new ModelRenderer(this, 0, 0); Shape67.addBox(0F, 0F, 0F, 1, 2, 1); Shape67.setRotationPoint(3.533333F, -2F, -4.466667F); Shape67.setTextureSize(64, 64); Shape67.mirror = true; setRotation(Shape67, -0.0174533F, 0F, 0F); Shape68 = new ModelRenderer(this, 0, 0); Shape68.addBox(0F, 0F, 0F, 1, 2, 1); Shape68.setRotationPoint(5.533333F, -2F, -4.466667F); Shape68.setTextureSize(64, 64); Shape68.mirror = true; setRotation(Shape68, -0.0174533F, 0F, 0F); } public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { super.render(entity, f, f1, f2, f3, f4, f5); setRotationAngles(f, f1, f2, f3, f4, f5, entity); Shape1.render(f5); Shape2.render(f5); Shape3.render(f5); Shape4.render(f5); Shape5.render(f5); Shape6.render(f5); Shape7.render(f5); Shape8.render(f5); Shape12.render(f5); Shape13.render(f5); Shape14.render(f5); Shape15.render(f5); Shape16.render(f5); Shape17.render(f5); Shape18.render(f5); Shape22.render(f5); Shape23.render(f5); Shape24.render(f5); Shape25.render(f5); Shape26.render(f5); Shape27.render(f5); Shape28.render(f5); Shape32.render(f5); Shape33.render(f5); Shape34.render(f5); Shape35.render(f5); Shape36.render(f5); Shape37.render(f5); Shape38.render(f5); Shape42.render(f5); Shape43.render(f5); Shape44.render(f5); Shape45.render(f5); Shape46.render(f5); Shape47.render(f5); Shape48.render(f5); Shape52.render(f5); Shape53.render(f5); Shape54.render(f5); Shape55.render(f5); Shape56.render(f5); Shape57.render(f5); Shape58.render(f5); Shape62.render(f5); Shape63.render(f5); Shape64.render(f5); Shape65.render(f5); Shape66.render(f5); Shape67.render(f5); Shape68.render(f5); } private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; } public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); } } And Last but not least the Initialization: Load Method: public static void init() { ModBlock.init(Configurations.BlockStartID); ModItem.init(Configurations.ItemStartID); GameRegistry.registerTileEntity(TileEntitySpikes.class, "Spikes"); proxy.registerRenderers(); } Client Proxy: public class ClientProxy extends CommonProxy { @Override public void registerRenderers() { ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySpikes.class, new RenderBlockSpikes()); } } I hope anybody can help me with this problem! (If I missed some code you need to understand, please write!) http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
October 31, 201311 yr What exactly is this suppose to do ? GL11.glPushMatrix(); GL11.glRotatef(meta * (-90), 0.0F, 0.0F, 1.0F); GL11.glPopMatrix(); how to debug 101:http://www.minecraftforge.net/wiki/Debug_101 -hydroflame, author of the forge revolution-
October 31, 201311 yr Author What exactly is this suppose to do ? GL11.glPushMatrix(); GL11.glRotatef(meta * (-90), 0.0F, 0.0F, 1.0F); GL11.glPopMatrix(); Oh, that is something I didn't removed after some experiments... just ignore it. http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
October 31, 201311 yr Hi I don't know the answer but I'd suggest it should be pretty easy to figure out with a few well-placed breakpoints- eg is the renderer called at all? if not why not? is it rendering at the correct x,y,z location? what happens if you replace your render with a test object that you know renders properly? -TGG
November 2, 201311 yr Author Hi I don't know the answer but I'd suggest it should be pretty easy to figure out with a few well-placed breakpoints- eg is the renderer called at all? if not why not? is it rendering at the correct x,y,z location? what happens if you replace your render with a test object that you know renders properly? -TGG I've added "System.out.println("CALLED");" at dome locations. (See code in the first post) The Renderer isn't called at all... Bit I think, I have initialized everything correctly! http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
November 2, 201311 yr In the ClientProxy class, try adding a String (can be anything, as long as it's unique) between the "TileEntitySpikes.class" and "new RenderBlockSpikes()". It solved it for me. Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
November 2, 201311 yr Hi I'd suggest: Is the ClientProxy.registerRenderers() called? If so, consider a breakpoint in TileEntityRenderer.renderTileEntityAt() at this line- TileEntitySpecialRenderer tileentityspecialrenderer = this.getSpecialRendererForEntity(par1TileEntity); then trace into getSpecialRendererForEntity and see why your par1TileEntity doesn't match any of the entries in specialRendererMap -TGG
November 3, 201311 yr Author Actually the renderTileEntityAt isn't called for my TileEntity. EDIT:The Renderer is registered and added to the specialRendererMap of the TileEntityRenderer, but the rendering Methods are never called. http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
November 3, 201311 yr Author OK, I've now found my mistake: I have forgotten this lines of code: @Override public boolean hasTileEntity(int meta) { return true; } Now it renders correctly, but I cant destroy the Block anymore. It shows no Bounding Box. What is now wrong? EDIT Sorry, my mistake! The Block is rendered one Block too high and I didn't see the box. All's OK now. Thank you! http://i.imgur.com/wNvtGZw.png[/img] MODS and MODDING TUTORIALS
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.