package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import com.hbm.main.ResourceManager; import com.hbm.tileentity.machine.TileEntityMachineHephaestus; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; public class RenderHephaestus extends TileEntitySpecialRenderer { @Override public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5D, y, z + 0.5D); GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); GL11.glShadeModel(GL11.GL_SMOOTH); bindTexture(ResourceManager.hephaestus_tex); ResourceManager.hephaestus.renderPart("Main"); TileEntityMachineHephaestus geo = (TileEntityMachineHephaestus) tile; float movement = geo.prevRot + (geo.rot - geo.prevRot) * interp; boolean isOn = geo.bufferedHeat > 0; GL11.glPushMatrix(); GL11.glRotatef(movement, 0, 1, 0); for(int i = 0; i < 3; i++) { ResourceManager.hephaestus.renderPart("Rotor"); GL11.glRotated(120, 0, 1, 0); } GL11.glEnable(GL11.GL_CULL_FACE); GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); GL11.glPushMatrix(); if(isOn) { bindTexture(RenderCrucible.lava); GL11.glPushAttrib(GL11.GL_LIGHTING_BIT); GL11.glDisable(GL11.GL_LIGHTING); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, 240F, 240F); } else { bindTexture(RenderExcavator.cobble); GL11.glColor3f(0.5F, 0.5F, 0.5F); } GL11.glMatrixMode(GL11.GL_TEXTURE); GL11.glLoadIdentity(); GL11.glScalef(0.5F, 0.5F, 0.5F); GL11.glTranslatef(0, movement / 10F, 0); ResourceManager.hephaestus.renderPart("Core"); GL11.glMatrixMode(GL11.GL_TEXTURE); GL11.glLoadIdentity(); GL11.glMatrixMode(GL11.GL_MODELVIEW); if(isOn) { GL11.glEnable(GL11.GL_LIGHTING); GL11.glPopAttrib(); } else { GL11.glColor3f(1F, 1F, 1F); } GL11.glPopMatrix(); GL11.glPopMatrix(); } }