package micdoodle8.mods.galacticraft.core.client.gui.overlay; import micdoodle8.mods.galacticraft.core.proxy.ClientProxyCore; import micdoodle8.mods.galacticraft.core.util.ClientUtil; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.WorldRenderer; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; import net.minecraftforge.fml.client.FMLClientHandler; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import org.lwjgl.opengl.GL11; @SideOnly(Side.CLIENT) public class OverlayRocket extends Overlay { private static Minecraft minecraft = FMLClientHandler.instance().getClient(); /** * Render the GUI when player is in inventory */ public static void renderSpaceshipOverlay(ResourceLocation guiTexture) { if (guiTexture == null) { return; } final ScaledResolution scaledresolution = ClientUtil.getScaledRes(OverlayRocket.minecraft, OverlayRocket.minecraft.displayWidth, OverlayRocket.minecraft.displayHeight); scaledresolution.getScaledWidth(); final int height = scaledresolution.getScaledHeight(); OverlayRocket.minecraft.entityRenderer.setupOverlayRendering(); GlStateManager.depthMask(true); GlStateManager.enableTexture2D(); GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); FMLClientHandler.instance().getClient().renderEngine.bindTexture(guiTexture); float var1 = 0F; float var2 = height / 2 - 170 / 2; float var3 = 0.0F; float var3b = 0.0F; float var4 = 0.0F; float var5 = 1.0F; float var6 = 1.0F; float var7 = 1.0F; float var8 = 1.0F; float sizeScale = 0.65F; final Tessellator tess = Tessellator.getInstance(); WorldRenderer worldRenderer = tess.getWorldRenderer(); worldRenderer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); worldRenderer.pos(var1 + 0, var2 + 242.0F * sizeScale, 0.0).tex((var3 + 0) * var7, (var4 + var6) * var8).endVertex(); worldRenderer.pos(var1 + 20.0F * sizeScale, var2 + 242.0F * sizeScale, 0.0).tex((var3 + var5) * var7, (var4 + var6) * var8).endVertex(); worldRenderer.pos(var1 + 20.0F * sizeScale, var2 + 0, 0.0).tex((var3 + var5) * var7, (var4 + 0) * var8).endVertex(); worldRenderer.pos(var1 + 0, var2 + 0, 0.0).tex((var3 + 0) * var7, (var4 + 0) * var8).endVertex(); tess.draw(); GlStateManager.color(1.0F, 1.0F, 1.0F); Render spaceshipRender = (Render) minecraft.getRenderManager().entityRenderMap.get(OverlayRocket.minecraft.thePlayer.ridingEntity.getClass()); final int y1 = height / 2 + 60 - (int) Math.floor(Overlay.getPlayerPositionY(OverlayRocket.minecraft.thePlayer) / 10.5F); var1 = 2.5F; var2 = y1; var3 = 8; var3b = 40; var4 = 8; var5 = 8; var6 = 8; var7 = 1.0F / 64.0F; var8 = 1.0F / 64.0F; GlStateManager.pushMatrix(); final int i = OverlayRocket.minecraft.thePlayer.ridingEntity.getBrightnessForRender(1); final int j = i % 65536; final int k = i / 65536; OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, j / 1.0F, k / 1.0F); GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); GlStateManager.enableColorMaterial(); GlStateManager.translate(var1 + 4, var2 + 6, 50F); GlStateManager.scale(5F, 5F, 5F); GlStateManager.rotate(180F, 1, 0, 0); GlStateManager.rotate(90F, 0, 1, 0); try { spaceshipRender.doRender(OverlayRocket.minecraft.thePlayer.ridingEntity.getClass().getConstructor(World.class).newInstance(OverlayRocket.minecraft.thePlayer.worldObj), 0, 0, 0, 0, 0); } catch (Exception e) { e.printStackTrace(); } GlStateManager.popMatrix(); FMLClientHandler.instance().getClient().renderEngine.bindTexture(ClientProxyCore.playerHead); GlStateManager.disableLighting(); GlStateManager.enableBlend(); GlStateManager.blendFunc(770, 771); GlStateManager.translate(0F, -13F, 60F); worldRenderer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); worldRenderer.pos(var1 + 0, var2 + var6, 0.0).tex((var3 + 0) * var7, (var4 + var6) * var8).endVertex(); worldRenderer.pos(var1 + var5, var2 + var6, 0.0).tex((var3 + var5) * var7, (var4 + var6) * var8).endVertex(); worldRenderer.pos(var1 + var5, var2 + 0, 0.0).tex((var3 + var5) * var7, (var4 + 0) * var8).endVertex(); worldRenderer.pos(var1 + 0, var2 + 0, 0.0).tex((var3 + 0) * var7, (var4 + 0) * var8).endVertex(); tess.draw(); worldRenderer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); worldRenderer.pos(var1 + 0, var2 + var6, 0.0).tex((var3b + 0) * var7, (var4 + var6) * var8).endVertex(); worldRenderer.pos(var1 + var5, var2 + var6, 0.0).tex((var3b + var5) * var7, (var4 + var6) * var8).endVertex(); worldRenderer.pos(var1 + var5, var2 + 0, 0.0).tex((var3b + var5) * var7, (var4 + 0) * var8).endVertex(); worldRenderer.pos(var1 + 0, var2 + 0, 0.0).tex((var3b + 0) * var7, (var4 + 0) * var8).endVertex(); tess.draw(); GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); GlStateManager.enableLighting(); GlStateManager.disableBlend(); } }