public Vec3D getSkyColor(Entity par1Entity, float par2)
    {
        float var3 = this.getCelestialAngle(par2);
        float var4 = MathHelper.cos(var3 * (float)Math.PI * 2.0F) * 2.0F + 0.5F;

        if (var4 < 0.0F)
        {
            var4 = 0.0F;
        }

        if (var4 > 1.0F)
        {
            var4 = 1.0F;
        }

        int var5 = MathHelper.floor_double(par1Entity.posX);
        int var6 = MathHelper.floor_double(par1Entity.posZ);
        BiomeGenBase var7 = this.getBiomeGenForCoords(var5, var6);
        float var8 = var7.getFloatTemperature();
        int var9 = var7.getSkyColorByTemp(var8);
        float var10 = (float)(var9 >> 16 & 255) / 255.0F;
        float var11 = (float)(var9 >> 8 & 255) / 255.0F;
        float var12 = (float)(var9 & 255) / 255.0F;
        var10 *= var4;
        var11 *= var4;
        var12 *= var4;
        float var13 = this.getRainStrength(par2);
        float var14;
        float var15;

        if (var13 > 0.0F)
        {
            var14 = (var10 * 0.3F + var11 * 0.59F + var12 * 0.11F) * 0.6F;
            var15 = 1.0F - var13 * 0.75F;
            var10 = var10 * var15 + var14 * (1.0F - var15);
            var11 = var11 * var15 + var14 * (1.0F - var15);
            var12 = var12 * var15 + var14 * (1.0F - var15);
        }

        var14 = this.getWeightedThunderStrength(par2);

        if (var14 > 0.0F)
        {
            var15 = (var10 * 0.3F + var11 * 0.59F + var12 * 0.11F) * 0.2F;
            float var16 = 1.0F - var14 * 0.75F;
            var10 = var10 * var16 + var15 * (1.0F - var16);
            var11 = var11 * var16 + var15 * (1.0F - var16);
            var12 = var12 * var16 + var15 * (1.0F - var16);
        }

        if (this.lightningFlash > 0)
        {
            var15 = (float)this.lightningFlash - par2;

            if (var15 > 1.0F)
            {
                var15 = 1.0F;
            }

            var15 *= 0.45F;
            var10 = var10 * (1.0F - var15) + 0.8F * var15;
            var11 = var11 * (1.0F - var15) + 0.8F * var15;
            var12 = var12 * (1.0F - var15) + 1.0F * var15;
        }

        return Vec3D.createVector((double)var10, (double)var11, (double)var12);
    }