package crazypants.enderio.machine.ranged; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderEntity; import net.minecraft.entity.Entity; import org.lwjgl.opengl.GL11; import com.enderio.core.client.render.BoundingBox; import com.enderio.core.client.render.CubeRenderer; import com.enderio.core.client.render.IconUtil; import com.enderio.core.client.render.RenderUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class RangeRenerer extends RenderEntity { @Override public void doRender(Entity entity, double x, double y, double z, float p_76986_8_, float p_76986_9_) { RangeEntity se = ((RangeEntity) entity); GL11.glPushAttrib(GL11.GL_ENABLE_BIT); GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_CULL_FACE); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glDepthMask(false); float scale = 1 - ( se.lifeSpan / (float)se.totalLife); scale = Math.min(scale, 1); scale *= se.range; GL11.glPushMatrix(); GL11.glTranslatef((float) x, (float) y, (float) z); GL11.glTranslatef(0.5f,0.5f,0.5f); GL11.glScalef(scale, scale, scale); GL11.glTranslatef(-0.5f,-0.5f,-0.5f); GL11.glColor4f(1, 1, 1, 0.4f); RenderUtil.bindBlockTexture(); Tessellator.instance.startDrawingQuads(); Tessellator.instance.setBrightness(15 << 20 | 15 << 4); CubeRenderer.render(BoundingBox.UNIT_CUBE, IconUtil.whiteTexture); Tessellator.instance.draw(); RenderUtil.bindItemTexture(); GL11.glDepthMask(true); GL11.glPopAttrib(); GL11.glPopMatrix(); } }