stevekung.mods.moreplanets.planets.venus.dimension.sky.SkyProviderVenus.java Source code

Java tutorial

Introduction

Here is the source code for stevekung.mods.moreplanets.planets.venus.dimension.sky.SkyProviderVenus.java

Source

/*******************************************************************************
 * Copyright 2015 SteveKunG - More Planets Mod
 * 
 * This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License.
 * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
 ******************************************************************************/

//package stevekung.mods.moreplanets.planets.venus.dimension.sky;
//
//import java.util.Random;
//
//import micdoodle8.mods.galacticraft.api.world.IGalacticraftWorldProvider;
//import micdoodle8.mods.galacticraft.core.util.ConfigManagerCore;
//import net.minecraft.client.Minecraft;
//import net.minecraft.client.multiplayer.WorldClient;
//import net.minecraft.client.renderer.GLAllocation;
//import net.minecraft.client.renderer.OpenGlHelper;
//import net.minecraft.client.renderer.RenderHelper;
//import net.minecraft.client.renderer.Tessellator;
//import net.minecraft.util.MathHelper;
//import net.minecraft.util.ResourceLocation;
//import net.minecraft.util.Vec3;
//import net.minecraftforge.client.IRenderHandler;
//
//import org.lwjgl.opengl.GL11;
//
//import cpw.mods.fml.client.FMLClientHandler;
//
//public class SkyProviderVenus extends IRenderHandler
//{

//
//   public int starList;
//   public int glSkyList;
//   public int glSkyList2;
//   private float sunSize;
//
//   public SkyProviderVenus(IGalacticraftWorldProvider marsProvider)
//   {
//      this.sunSize = 17.5F * marsProvider.getSolarSize();
//
//      int displayLists = GLAllocation.generateDisplayLists(3);
//      this.starList = displayLists;
//      this.glSkyList = displayLists + 1;
//      this.glSkyList2 = displayLists + 2;
//
//      // Bind stars to display list
//      GL11.glPushMatrix();
//      GL11.glNewList(this.starList, GL11.GL_COMPILE);
//      this.renderStars();
//      GL11.glEndList();
//      GL11.glPopMatrix();
//
//      Tessellator tessellator = Tessellator.instance;
//      GL11.glNewList(this.glSkyList, GL11.GL_COMPILE);
//      byte byte2 = 64;
//      int i = 256 / byte2 + 2;
//      float f = 16F;
//
//      for (int j = -byte2 * i; j <= byte2 * i; j += byte2)
//      {
//         for (int l = -byte2 * i; l <= byte2 * i; l += byte2)
//         {
//            tessellator.startDrawingQuads();
//            tessellator.addVertex(j + 0, f, l + 0);
//            tessellator.addVertex(j + byte2, f, l + 0);
//            tessellator.addVertex(j + byte2, f, l + byte2);
//            tessellator.addVertex(j + 0, f, l + byte2);
//            tessellator.draw();
//         }
//      }
//
//      GL11.glEndList();
//      GL11.glNewList(this.glSkyList2, GL11.GL_COMPILE);
//      f = -16F;
//      tessellator.startDrawingQuads();
//
//      for (int k = -byte2 * i; k <= byte2 * i; k += byte2)
//      {
//         for (int i1 = -byte2 * i; i1 <= byte2 * i; i1 += byte2)
//         {
//            tessellator.addVertex(k + byte2, f, i1 + 0);
//            tessellator.addVertex(k + 0, f, i1 + 0);
//            tessellator.addVertex(k + 0, f, i1 + byte2);
//            tessellator.addVertex(k + byte2, f, i1 + byte2);
//         }
//      }
//      tessellator.draw();
//      GL11.glEndList();
//   }
//
//   @Override
//   public void render(float partialTicks, WorldClient world, Minecraft mc)
//   {
//      GL11.glDisable(GL11.GL_TEXTURE_2D);
//      Vec3 vec3 = world.getSkyColor(mc.renderViewEntity, partialTicks);
//      float f1 = (float) vec3.xCoord;
//      float f2 = (float) vec3.yCoord;
//      float f3 = (float) vec3.zCoord;
//      float f6;
//
//      if (mc.gameSettings.anaglyph)
//      {
//         float f4 = (f1 * 30.0F + f2 * 59.0F + f3 * 11.0F) / 100.0F;
//         float f5 = (f1 * 30.0F + f2 * 70.0F) / 100.0F;
//         f6 = (f1 * 30.0F + f3 * 70.0F) / 100.0F;
//         f1 = f4;
//         f2 = f5;
//         f3 = f6;
//      }
//
//      GL11.glColor3f(f1, f2, f3);
//      Tessellator tessellator1 = Tessellator.instance;
//      GL11.glDepthMask(false);
//      GL11.glEnable(GL11.GL_FOG);
//      GL11.glColor3f(f1, f2, f3);
//      GL11.glCallList(this.glSkyList);
//      GL11.glDisable(GL11.GL_FOG);
//      GL11.glDisable(GL11.GL_ALPHA_TEST);
//      GL11.glEnable(GL11.GL_BLEND);
//      OpenGlHelper.glBlendFunc(770, 771, 1, 0);
//      RenderHelper.disableStandardItemLighting();
//      float f7;
//      float f8;
//      float f9;
//      float f10;
//
//      float f18 = world.getStarBrightness(partialTicks);
//
//      if (f18 > 0.0F)
//      {
//         GL11.glColor4f(f18, f18, f18, f18);
//         GL11.glCallList(this.starList);
//      }
//
//      float[] afloat = new float[4];
//      GL11.glDisable(GL11.GL_TEXTURE_2D);
//      GL11.glShadeModel(GL11.GL_SMOOTH);
//      GL11.glPushMatrix();
//      GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
//      GL11.glRotatef(world.getCelestialAngle(partialTicks) * 360.0F, 1.0F, 0.0F, 0.0F);
//      afloat[0] = 225 / 255.0F;
//      afloat[1] = 225 / 255.0F;
//      afloat[2] = 255 / 255.0F;
//      afloat[3] = 0.3F;
//      f6 = afloat[0];
//      f7 = afloat[1];
//      f8 = afloat[2];
//      float f11;
//
//      if (mc.gameSettings.anaglyph)
//      {
//         f9 = (f6 * 30.0F + f7 * 59.0F + f8 * 11.0F) / 100.0F;
//         f10 = (f6 * 30.0F + f7 * 70.0F) / 100.0F;
//         f11 = (f6 * 30.0F + f8 * 70.0F) / 100.0F;
//         f6 = f9;
//         f7 = f10;
//         f8 = f11;
//      }
//
//      f18 = 1.0F - f18;
//
//      tessellator1.startDrawing(GL11.GL_TRIANGLE_FAN);
//      tessellator1.setColorRGBA_F(f6 * f18, f7 * f18, f8 * f18, afloat[3] * 2 / f18);
//      tessellator1.addVertex(0.0D, 100.0D, 0.0D);
//      tessellator1.setColorRGBA_F(afloat[0] * f18, afloat[1] * f18, afloat[2] * f18, 0.0F);
//
//      // Render sun aura
//      f10 = 50.0F;
//      tessellator1.addVertex(-f10, 100.0D, -f10);
//      tessellator1.addVertex(0, 100.0D, (double) -f10 * 1.5F);
//      tessellator1.addVertex(f10, 100.0D, -f10);
//      tessellator1.addVertex((double) f10 * 1.5F, 100.0D, 0);
//      tessellator1.addVertex(f10, 100.0D, f10);
//      tessellator1.addVertex(0, 100.0D, (double) f10 * 1.5F);
//      tessellator1.addVertex(-f10, 100.0D, f10);
//      tessellator1.addVertex((double) -f10 * 1.5F, 100.0D, 0);
//      tessellator1.addVertex(-f10, 100.0D, -f10);
//
//      tessellator1.draw();
//      tessellator1.startDrawing(GL11.GL_TRIANGLE_FAN);
//      tessellator1.setColorRGBA_F(f6 * f18, f7 * f18, f8 * f18, afloat[3] * f18);
//      tessellator1.addVertex(0.0D, 100.0D, 0.0D);
//      tessellator1.setColorRGBA_F(afloat[0] * f18, afloat[1] * f18, afloat[2] * f18, 0.0F);
//
//      // Render larger sun aura
//      f10 = 75.0F;
//      tessellator1.addVertex(-f10, 100.0D, -f10);
//      tessellator1.addVertex(0, 100.0D, (double) -f10 * 1.5F);
//      tessellator1.addVertex(f10, 100.0D, -f10);
//      tessellator1.addVertex((double) f10 * 1.5F, 100.0D, 0);
//      tessellator1.addVertex(f10, 100.0D, f10);
//      tessellator1.addVertex(0, 100.0D, (double) f10 * 1.5F);
//      tessellator1.addVertex(-f10, 100.0D, f10);
//      tessellator1.addVertex((double) -f10 * 1.5F, 100.0D, 0);
//      tessellator1.addVertex(-f10, 100.0D, -f10);
//
//      tessellator1.draw();
//      GL11.glPopMatrix();
//      GL11.glShadeModel(GL11.GL_FLAT);
//
//      GL11.glEnable(GL11.GL_TEXTURE_2D);
//      OpenGlHelper.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ONE, GL11.GL_ZERO);
//      GL11.glPushMatrix();
//
//      GL11.glPopMatrix();
//      GL11.glPushMatrix();
//      f7 = 0.0F;
//      f8 = 0.0F;
//      f9 = 0.0F;
//      GL11.glTranslatef(f7, f8, f9);
//      GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
//      GL11.glRotatef(world.getCelestialAngle(partialTicks) * 360.0F, 1.0F, 0.0F, 0.0F);
//      GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
//      GL11.glDisable(GL11.GL_TEXTURE_2D);
//      GL11.glColor4f(0.0F, 0.0F, 0.0F, 1.0F);
//      f10 = 81.575F / 3.5F;
//      tessellator1.startDrawingQuads();
//      tessellator1.addVertex(-f10, 99.9D, -f10);
//      tessellator1.addVertex(f10, 99.9D, -f10);
//      tessellator1.addVertex(f10, 99.9D, f10);
//      tessellator1.addVertex(-f10, 99.9D, f10);
//      tessellator1.draw();
//      GL11.glEnable(GL11.GL_TEXTURE_2D);
//      GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
//      GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
//      // Render sun
//      GL11.glDisable(GL11.GL_TEXTURE_2D);
//      GL11.glColor4f(0.0F, 0.0F, 0.0F, 1.0F);
//      //Some blanking to conceal the stars
//      f10 = this.sunSize / 3.5F;
//      tessellator1.startDrawingQuads();
//      tessellator1.addVertex(-f10, 99.9D, -f10);
//      tessellator1.addVertex(f10, 99.9D, -f10);
//      tessellator1.addVertex(f10, 99.9D, f10);
//      tessellator1.addVertex(-f10, 99.9D, f10);
//      tessellator1.draw();
//      GL11.glEnable(GL11.GL_TEXTURE_2D);
//      GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
//      f10 = this.sunSize;
//      mc.renderEngine.bindTexture(this.sunTexture);
//      tessellator1.startDrawingQuads();
//      tessellator1.addVertexWithUV(-f10, 100.0D, -f10, 0.0D, 0.0D);
//      tessellator1.addVertexWithUV(f10, 100.0D, -f10, 1.0D, 0.0D);
//      tessellator1.addVertexWithUV(f10, 100.0D, f10, 1.0D, 1.0D);
//      tessellator1.addVertexWithUV(-f10, 100.0D, f10, 0.0D, 1.0D);
//      tessellator1.draw();
//

//
//      GL11.glDisable(GL11.GL_TEXTURE_2D);
//
//      GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
//      GL11.glDisable(GL11.GL_BLEND);
//      GL11.glEnable(GL11.GL_ALPHA_TEST);
//      GL11.glEnable(GL11.GL_FOG);
//      GL11.glPopMatrix();
//      GL11.glDisable(GL11.GL_TEXTURE_2D);
//      GL11.glColor3f(0.0F, 0.0F, 0.0F);
//      double d0 = mc.thePlayer.getPosition(partialTicks).yCoord - world.getHorizon();
//
//      if (d0 < 0.0D)
//      {
//         GL11.glPushMatrix();
//         GL11.glTranslatef(0.0F, 12.0F, 0.0F);
//         GL11.glCallList(this.glSkyList2);
//         GL11.glPopMatrix();
//         f8 = 1.0F;
//         f9 = -((float) (d0 + 65.0D));
//         f10 = -f8;
//         tessellator1.startDrawingQuads();
//         tessellator1.setColorRGBA_I(0, 255);
//         tessellator1.addVertex(-f8, f9, f8);
//         tessellator1.addVertex(f8, f9, f8);
//         tessellator1.addVertex(f8, f10, f8);
//         tessellator1.addVertex(-f8, f10, f8);
//         tessellator1.addVertex(-f8, f10, -f8);
//         tessellator1.addVertex(f8, f10, -f8);
//         tessellator1.addVertex(f8, f9, -f8);
//         tessellator1.addVertex(-f8, f9, -f8);
//         tessellator1.addVertex(f8, f10, -f8);
//         tessellator1.addVertex(f8, f10, f8);
//         tessellator1.addVertex(f8, f9, f8);
//         tessellator1.addVertex(f8, f9, -f8);
//         tessellator1.addVertex(-f8, f9, -f8);
//         tessellator1.addVertex(-f8, f9, f8);
//         tessellator1.addVertex(-f8, f10, f8);
//         tessellator1.addVertex(-f8, f10, -f8);
//         tessellator1.addVertex(-f8, f10, -f8);
//         tessellator1.addVertex(-f8, f10, f8);
//         tessellator1.addVertex(f8, f10, f8);
//         tessellator1.addVertex(f8, f10, -f8);
//         tessellator1.draw();
//      }
//
//      if (world.provider.isSkyColored())
//      {
//         GL11.glColor3f(f1 * 0.2F + 0.04F, f2 * 0.2F + 0.04F, f3 * 0.6F + 0.1F);
//      }
//      else
//      {
//         GL11.glColor3f(f1, f2, f3);
//      }
//      GL11.glPushMatrix();
//      GL11.glTranslatef(0.0F, -((float) (d0 - 16.0D)), 0.0F);
//      GL11.glCallList(this.glSkyList2);
//      GL11.glPopMatrix();
//      GL11.glEnable(GL11.GL_TEXTURE_2D);
//      GL11.glDepthMask(true);
//   }
//
//   private void renderStars()
//   {
//      Random rand = new Random(10842L);
//      Tessellator var2 = Tessellator.instance;
//      var2.startDrawingQuads();
//
//      for (int starIndex = 0; starIndex < (ConfigManagerCore.moreStars ? 35000 : 6000); ++starIndex)
//      {
//         double var4 = rand.nextFloat() * 2.0F - 1.0F;
//         double var6 = rand.nextFloat() * 2.0F - 1.0F;
//         double var8 = rand.nextFloat() * 2.0F - 1.0F;
//         double var10 = 0.15F + rand.nextFloat() * 0.1F;
//         double var12 = var4 * var4 + var6 * var6 + var8 * var8;
//
//         if (var12 < 1.0D && var12 > 0.01D)
//         {
//            var12 = 1.0D / Math.sqrt(var12);
//            var4 *= var12;
//            var6 *= var12;
//            var8 *= var12;
//            double var14 = var4 * (ConfigManagerCore.moreStars ? rand.nextDouble() * 150D + 130D : 100.0D);
//            double var16 = var6 * (ConfigManagerCore.moreStars ? rand.nextDouble() * 150D + 130D : 100.0D);
//            double var18 = var8 * (ConfigManagerCore.moreStars ? rand.nextDouble() * 150D + 130D : 100.0D);
//            double var20 = Math.atan2(var4, var8);
//            double var22 = Math.sin(var20);
//            double var24 = Math.cos(var20);
//            double var26 = Math.atan2(Math.sqrt(var4 * var4 + var8 * var8), var6);
//            double var28 = Math.sin(var26);
//            double var30 = Math.cos(var26);
//            double var32 = rand.nextDouble() * Math.PI * 2.0D;
//            double var34 = Math.sin(var32);
//            double var36 = Math.cos(var32);
//
//            for (int var38 = 0; var38 < 4; ++var38)
//            {
//               double var39 = 0.0D;
//               double var41 = ((var38 & 2) - 1) * var10;
//               double var43 = ((var38 + 1 & 2) - 1) * var10;
//               double var47 = var41 * var36 - var43 * var34;
//               double var49 = var43 * var36 + var41 * var34;
//               double var53 = var47 * var28 + var39 * var30;
//               double var55 = var39 * var28 - var47 * var30;
//               double var57 = var55 * var22 - var49 * var24;
//               double var61 = var49 * var22 + var55 * var24;
//               var2.addVertex(var14 + var57, var16 + var53, var18 + var61);
//            }
//         }
//      }
//      var2.draw();
//   }
//
//   public float getSkyBrightness(float par1)
//   {
//      float var2 = FMLClientHandler.instance().getClient().theWorld.getCelestialAngle(par1);
//      float var3 = 1.0F - (MathHelper.sin(var2 * (float) Math.PI * 2.0F) * 2.0F + 0.25F);
//
//      if (var3 < 0.0F)
//      {
//         var3 = 0.0F;
//      }
//      if (var3 > 1.0F)
//      {
//         var3 = 1.0F;
//      }
//      return var3 * var3 * 1F;
//   }
//}

package stevekung.mods.moreplanets.planets.venus.dimension.sky;

import java.util.Random;

import micdoodle8.mods.galacticraft.api.world.IGalacticraftWorldProvider;
import micdoodle8.mods.galacticraft.core.util.ConfigManagerCore;
import net.minecraft.client.Minecraft;
import net.minecraft.client.multiplayer.WorldClient;
import net.minecraft.client.renderer.GLAllocation;
import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.util.MathHelper;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.Vec3;
import net.minecraftforge.client.IRenderHandler;

import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;

import cpw.mods.fml.client.FMLClientHandler;

public class SkyProviderVenus extends IRenderHandler {
    private ResourceLocation earthTexture = new ResourceLocation(
            "galacticraftcore:textures/gui/celestialbodies/earth.png");
    private ResourceLocation mercuryTexture = new ResourceLocation(
            "galacticraftcore:textures/gui/celestialbodies/mercury.png");
    private ResourceLocation sunTexture = new ResourceLocation(
            "galacticraftcore:textures/gui/celestialbodies/sun.png");

    public int starList;
    public int glSkyList;
    public int glSkyList2;
    private float sunSize;

    public SkyProviderVenus(IGalacticraftWorldProvider marsProvider) {
        this.sunSize = 17.5F * marsProvider.getSolarSize();

        int displayLists = GLAllocation.generateDisplayLists(3);
        this.starList = displayLists;
        this.glSkyList = displayLists + 1;
        this.glSkyList2 = displayLists + 2;

        // Bind stars to display list
        GL11.glPushMatrix();
        GL11.glNewList(this.starList, GL11.GL_COMPILE);
        this.renderStars();
        GL11.glEndList();
        GL11.glPopMatrix();

        Tessellator tessellator = Tessellator.instance;
        GL11.glNewList(this.glSkyList, GL11.GL_COMPILE);
        byte byte2 = 64;
        int i = 256 / byte2 + 2;
        float f = 16F;

        for (int j = -byte2 * i; j <= byte2 * i; j += byte2) {
            for (int l = -byte2 * i; l <= byte2 * i; l += byte2) {
                tessellator.startDrawingQuads();
                tessellator.addVertex(j + 0, f, l + 0);
                tessellator.addVertex(j + byte2, f, l + 0);
                tessellator.addVertex(j + byte2, f, l + byte2);
                tessellator.addVertex(j + 0, f, l + byte2);
                tessellator.draw();
            }
        }

        GL11.glEndList();
        GL11.glNewList(this.glSkyList2, GL11.GL_COMPILE);
        f = -16F;
        tessellator.startDrawingQuads();

        for (int k = -byte2 * i; k <= byte2 * i; k += byte2) {
            for (int i1 = -byte2 * i; i1 <= byte2 * i; i1 += byte2) {
                tessellator.addVertex(k + byte2, f, i1 + 0);
                tessellator.addVertex(k + 0, f, i1 + 0);
                tessellator.addVertex(k + 0, f, i1 + byte2);
                tessellator.addVertex(k + byte2, f, i1 + byte2);
            }
        }

        tessellator.draw();
        GL11.glEndList();
    }

    @Override
    public void render(float partialTicks, WorldClient world, Minecraft mc) {
        GL11.glDisable(GL11.GL_TEXTURE_2D);
        GL11.glDisable(GL12.GL_RESCALE_NORMAL);
        RenderHelper.enableStandardItemLighting();
        GL11.glDisable(GL11.GL_TEXTURE_2D);
        Vec3 vec3 = world.getSkyColor(mc.renderViewEntity, partialTicks);
        float f1 = (float) vec3.xCoord;
        float f2 = (float) vec3.yCoord;
        float f3 = (float) vec3.zCoord;
        float f6;

        if (mc.gameSettings.anaglyph) {
            float f4 = (f1 * 30.0F + f2 * 59.0F + f3 * 11.0F) / 100.0F;
            float f5 = (f1 * 30.0F + f2 * 70.0F) / 100.0F;
            f6 = (f1 * 30.0F + f3 * 70.0F) / 100.0F;
            f1 = f4;
            f2 = f5;
            f3 = f6;
        }

        GL11.glColor3f(f1, f2, f3);
        Tessellator tessellator1 = Tessellator.instance;
        GL11.glDepthMask(false);
        GL11.glEnable(GL11.GL_FOG);
        GL11.glColor3f(f1, f2, f3);
        GL11.glCallList(this.glSkyList);
        GL11.glDisable(GL11.GL_FOG);
        GL11.glDisable(GL11.GL_ALPHA_TEST);
        GL11.glEnable(GL11.GL_BLEND);
        OpenGlHelper.glBlendFunc(770, 771, 1, 0);
        RenderHelper.disableStandardItemLighting();
        float f7;
        float f8;
        float f9;
        float f10;

        float f18 = world.getStarBrightness(partialTicks);

        if (f18 > 0.0F) {
            GL11.glColor4f(f18, f18, f18, f18);
            GL11.glCallList(this.starList);
        }

        float[] afloat = new float[4];
        GL11.glDisable(GL11.GL_TEXTURE_2D);
        GL11.glShadeModel(GL11.GL_SMOOTH);
        GL11.glPushMatrix();
        GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
        GL11.glRotatef(world.getCelestialAngle(partialTicks) * 360.0F, 1.0F, 0.0F, 0.0F);
        afloat[0] = 255 / 255.0F;
        afloat[1] = 225 / 255.0F;
        afloat[2] = 255 / 255.0F;
        afloat[3] = 0.3F;
        f6 = afloat[0];
        f7 = afloat[1];
        f8 = afloat[2];
        float f11;

        if (mc.gameSettings.anaglyph) {
            f9 = (f6 * 30.0F + f7 * 59.0F + f8 * 11.0F) / 100.0F;
            f10 = (f6 * 30.0F + f7 * 70.0F) / 100.0F;
            f11 = (f6 * 30.0F + f8 * 70.0F) / 100.0F;
            f6 = f9;
            f7 = f10;
            f8 = f11;
        }

        f18 = 1.0F - f18;

        tessellator1.startDrawing(GL11.GL_TRIANGLE_FAN);
        tessellator1.setColorRGBA_F(f6 * f18, f7 * f18, f8 * f18, afloat[3] * 2 / f18);
        tessellator1.addVertex(0.0D, 100.0D, 0.0D);
        tessellator1.setColorRGBA_F(afloat[0] * f18, afloat[1] * f18, afloat[2] * f18, 0.0F);

        // Render sun aura
        f10 = 50.0F;
        tessellator1.addVertex(-f10, 100.0D, -f10);
        tessellator1.addVertex(0, 100.0D, (double) -f10 * 1.5F);
        tessellator1.addVertex(f10, 100.0D, -f10);
        tessellator1.addVertex((double) f10 * 1.5F, 100.0D, 0);
        tessellator1.addVertex(f10, 100.0D, f10);
        tessellator1.addVertex(0, 100.0D, (double) f10 * 1.5F);
        tessellator1.addVertex(-f10, 100.0D, f10);
        tessellator1.addVertex((double) -f10 * 1.5F, 100.0D, 0);
        tessellator1.addVertex(-f10, 100.0D, -f10);

        tessellator1.draw();
        tessellator1.startDrawing(GL11.GL_TRIANGLE_FAN);
        tessellator1.setColorRGBA_F(f6 * f18, f7 * f18, f8 * f18, afloat[3] * f18);
        tessellator1.addVertex(0.0D, 100.0D, 0.0D);
        tessellator1.setColorRGBA_F(afloat[0] * f18, afloat[1] * f18, afloat[2] * f18, 0.0F);

        // Render larger sun aura
        f10 = 75.0F;
        tessellator1.addVertex(-f10, 100.0D, -f10);
        tessellator1.addVertex(0, 100.0D, (double) -f10 * 1.5F);
        tessellator1.addVertex(f10, 100.0D, -f10);
        tessellator1.addVertex((double) f10 * 1.5F, 100.0D, 0);
        tessellator1.addVertex(f10, 100.0D, f10);
        tessellator1.addVertex(0, 100.0D, (double) f10 * 1.5F);
        tessellator1.addVertex(-f10, 100.0D, f10);
        tessellator1.addVertex((double) -f10 * 1.5F, 100.0D, 0);
        tessellator1.addVertex(-f10, 100.0D, -f10);

        tessellator1.draw();
        GL11.glPopMatrix();
        GL11.glShadeModel(GL11.GL_FLAT);

        GL11.glEnable(GL11.GL_TEXTURE_2D);
        OpenGlHelper.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE, GL11.GL_ONE, GL11.GL_ZERO);
        GL11.glPushMatrix();
        f7 = 0.0F;
        f8 = 0.0F;
        f9 = 0.0F;
        GL11.glTranslatef(f7, f8, f9);
        GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
        GL11.glRotatef(world.getCelestialAngle(partialTicks) * 360.0F, 1.0F, 0.0F, 0.0F);
        // Render sun
        GL11.glDisable(GL11.GL_TEXTURE_2D);
        GL11.glColor4f(0.0F, 0.0F, 0.0F, 1.0F);
        //Some blanking to conceal the stars
        f10 = this.sunSize / 3.5F;
        tessellator1.startDrawingQuads();
        tessellator1.addVertex(-f10, 99.9D, -f10);
        tessellator1.addVertex(f10, 99.9D, -f10);
        tessellator1.addVertex(f10, 99.9D, f10);
        tessellator1.addVertex(-f10, 99.9D, f10);
        tessellator1.draw();
        GL11.glEnable(GL11.GL_TEXTURE_2D);
        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
        f10 = this.sunSize;
        mc.renderEngine.bindTexture(this.sunTexture);
        tessellator1.startDrawingQuads();
        tessellator1.addVertexWithUV(-f10, 100.0D, -f10, 0.0D, 0.0D);
        tessellator1.addVertexWithUV(f10, 100.0D, -f10, 1.0D, 0.0D);
        tessellator1.addVertexWithUV(f10, 100.0D, f10, 1.0D, 1.0D);
        tessellator1.addVertexWithUV(-f10, 100.0D, f10, 0.0D, 1.0D);
        tessellator1.draw();

        // Render mercury
        f10 = 1.2F;
        GL11.glScalef(0.6F, 0.6F, 0.6F);
        GL11.glRotatef(80.0F, 0.0F, 0.0F, 1.0F);
        GL11.glRotatef(200F, 1.0F, 0.0F, 0.0F);
        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1F);
        FMLClientHandler.instance().getClient().renderEngine.bindTexture(this.mercuryTexture);
        tessellator1.startDrawingQuads();
        tessellator1.addVertexWithUV(-f10, -100.0D, f10, 0, 1);
        tessellator1.addVertexWithUV(f10, -100.0D, f10, 1, 1);
        tessellator1.addVertexWithUV(f10, -100.0D, -f10, 1, 0);
        tessellator1.addVertexWithUV(-f10, -100.0D, -f10, 0, 0);
        tessellator1.draw();

        GL11.glPopMatrix();
        GL11.glPushMatrix();

        // Render earth
        f10 = 0.25F;
        GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F);
        GL11.glRotatef(world.getCelestialAngle(partialTicks) * 360.0F, 1.0F, 0.0F, 0.0F);
        GL11.glScalef(0.6F, 0.6F, 0.6F);
        GL11.glRotatef(40.0F, 0.0F, 0.0F, 1.0F);
        GL11.glRotatef(0F, 1.0F, 0.0F, 0.0F);
        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1F);
        FMLClientHandler.instance().getClient().renderEngine.bindTexture(this.earthTexture);
        tessellator1.startDrawingQuads();
        tessellator1.addVertexWithUV(-f10, -100.0D, f10, 0, 1);
        tessellator1.addVertexWithUV(f10, -100.0D, f10, 1, 1);
        tessellator1.addVertexWithUV(f10, -100.0D, -f10, 1, 0);
        tessellator1.addVertexWithUV(-f10, -100.0D, -f10, 0, 0);
        tessellator1.draw();

        GL11.glDisable(GL11.GL_TEXTURE_2D);

        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
        GL11.glDisable(GL11.GL_BLEND);
        GL11.glEnable(GL11.GL_ALPHA_TEST);
        GL11.glEnable(GL11.GL_FOG);
        GL11.glPopMatrix();
        GL11.glDisable(GL11.GL_TEXTURE_2D);
        GL11.glColor3f(0.0F, 0.0F, 0.0F);
        double d0 = mc.thePlayer.getPosition(partialTicks).yCoord - world.getHorizon();

        if (d0 < 0.0D) {
            GL11.glPushMatrix();
            GL11.glTranslatef(0.0F, 12.0F, 0.0F);
            GL11.glCallList(this.glSkyList2);
            GL11.glPopMatrix();
            f8 = 1.0F;
            f9 = -((float) (d0 + 65.0D));
            f10 = -f8;
            tessellator1.startDrawingQuads();
            tessellator1.setColorRGBA_I(0, 255);
            tessellator1.addVertex(-f8, f9, f8);
            tessellator1.addVertex(f8, f9, f8);
            tessellator1.addVertex(f8, f10, f8);
            tessellator1.addVertex(-f8, f10, f8);
            tessellator1.addVertex(-f8, f10, -f8);
            tessellator1.addVertex(f8, f10, -f8);
            tessellator1.addVertex(f8, f9, -f8);
            tessellator1.addVertex(-f8, f9, -f8);
            tessellator1.addVertex(f8, f10, -f8);
            tessellator1.addVertex(f8, f10, f8);
            tessellator1.addVertex(f8, f9, f8);
            tessellator1.addVertex(f8, f9, -f8);
            tessellator1.addVertex(-f8, f9, -f8);
            tessellator1.addVertex(-f8, f9, f8);
            tessellator1.addVertex(-f8, f10, f8);
            tessellator1.addVertex(-f8, f10, -f8);
            tessellator1.addVertex(-f8, f10, -f8);
            tessellator1.addVertex(-f8, f10, f8);
            tessellator1.addVertex(f8, f10, f8);
            tessellator1.addVertex(f8, f10, -f8);
            tessellator1.draw();
        }

        if (world.provider.isSkyColored()) {
            GL11.glColor3f(f1 * 0.2F + 0.04F, f2 * 0.2F + 0.04F, f3 * 0.6F + 0.1F);
        } else {
            GL11.glColor3f(f1, f2, f3);
        }

        GL11.glPushMatrix();
        GL11.glTranslatef(0.0F, -((float) (d0 - 16.0D)), 0.0F);
        GL11.glCallList(this.glSkyList2);
        GL11.glPopMatrix();
        GL11.glEnable(GL11.GL_TEXTURE_2D);
        GL11.glDepthMask(true);
    }

    private void renderStars() {
        Random rand = new Random(10842L);
        Tessellator var2 = Tessellator.instance;
        var2.startDrawingQuads();

        for (int starIndex = 0; starIndex < (ConfigManagerCore.moreStars ? 35000 : 6000); ++starIndex) {
            double var4 = rand.nextFloat() * 2.0F - 1.0F;
            double var6 = rand.nextFloat() * 2.0F - 1.0F;
            double var8 = rand.nextFloat() * 2.0F - 1.0F;
            double var10 = 0.15F + rand.nextFloat() * 0.1F;
            double var12 = var4 * var4 + var6 * var6 + var8 * var8;

            if (var12 < 1.0D && var12 > 0.01D) {
                var12 = 1.0D / Math.sqrt(var12);
                var4 *= var12;
                var6 *= var12;
                var8 *= var12;
                double var14 = var4 * (ConfigManagerCore.moreStars ? rand.nextDouble() * 150D + 130D : 100.0D);
                double var16 = var6 * (ConfigManagerCore.moreStars ? rand.nextDouble() * 150D + 130D : 100.0D);
                double var18 = var8 * (ConfigManagerCore.moreStars ? rand.nextDouble() * 150D + 130D : 100.0D);
                double var20 = Math.atan2(var4, var8);
                double var22 = Math.sin(var20);
                double var24 = Math.cos(var20);
                double var26 = Math.atan2(Math.sqrt(var4 * var4 + var8 * var8), var6);
                double var28 = Math.sin(var26);
                double var30 = Math.cos(var26);
                double var32 = rand.nextDouble() * Math.PI * 2.0D;
                double var34 = Math.sin(var32);
                double var36 = Math.cos(var32);

                for (int var38 = 0; var38 < 4; ++var38) {
                    double var39 = 0.0D;
                    double var41 = ((var38 & 2) - 1) * var10;
                    double var43 = ((var38 + 1 & 2) - 1) * var10;
                    double var47 = var41 * var36 - var43 * var34;
                    double var49 = var43 * var36 + var41 * var34;
                    double var53 = var47 * var28 + var39 * var30;
                    double var55 = var39 * var28 - var47 * var30;
                    double var57 = var55 * var22 - var49 * var24;
                    double var61 = var49 * var22 + var55 * var24;
                    var2.addVertex(var14 + var57, var16 + var53, var18 + var61);
                }
            }
        }
        var2.draw();
    }

    public float getSkyBrightness(float par1) {
        float var2 = FMLClientHandler.instance().getClient().theWorld.getCelestialAngle(par1);
        float var3 = 1.0F - (MathHelper.sin(var2 * (float) Math.PI * 2.0F) * 2.0F + 0.25F);

        if (var3 < 0.0F) {
            var3 = 0.0F;
        }
        if (var3 > 1.0F) {
            var3 = 1.0F;
        }
        return var3 * var3 * 1F;
    }
}