package uk.co.wehavecookies56.kk.client.render; import org.lwjgl.opengl.GL11; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderItem; import net.minecraft.client.renderer.block.model.ItemCameraTransforms; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import uk.co.wehavecookies56.kk.common.block.tile.TileEntityPedestal; import uk.co.wehavecookies56.kk.common.item.base.ItemKeyblade; import uk.co.wehavecookies56.kk.common.item.base.ItemKeychain; import uk.co.wehavecookies56.kk.common.network.packet.PacketDispatcher; import uk.co.wehavecookies56.kk.common.network.packet.client.PedestalRotation; /** * Created by Toby on 06/11/2016. */ public class TESRPedestal extends TileEntitySpecialRenderer<TileEntityPedestal> { private RenderItem renderItem; @Override public void renderTileEntityAt(TileEntityPedestal te, double x, double y, double z, float partialTicks, int destroyStage) { if(te != null && te instanceof TileEntityPedestal) { if (te.getStackInSlot(0) != null) { GlStateManager.pushAttrib(); GlStateManager.pushMatrix(); GlStateManager.translate(x, y, z); GlStateManager.disableRescaleNormal(); this.renderItem = Minecraft.getMinecraft().getRenderItem(); GlStateManager.pushMatrix(); { int rot = te.getRotation(); GlStateManager.translate(0.5, 1.3, 0.5); GlStateManager.rotate(90*rot, 0, 1, 0); GlStateManager.scale(0.02, 0.02, 0.02); te.setKeyblade(te.getStackInSlot(0)); Item itemToRender = te.keyblade.getItem(); GL11.glPushAttrib(GL11.GL_ENABLE_BIT); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 128.0F, 128.0F); if(itemToRender instanceof ItemKeyblade) renderItem.renderItem(new ItemStack(itemToRender), ItemCameraTransforms.TransformType.NONE); else if (itemToRender instanceof ItemKeychain) renderItem.renderItem(new ItemStack(((ItemKeychain) itemToRender).getKeyblade()), ItemCameraTransforms.TransformType.NONE); GL11.glPopAttrib(); } GlStateManager.popMatrix(); GlStateManager.popMatrix(); GlStateManager.popAttrib(); } } super.renderTileEntityAt(te, x, y, z, partialTicks, destroyStage); } }