public Vec3D getSkyColor(Entity var1, float var2) {
        float var3 = this.getCelestialAngle(var2);
        float var4 = MathHelper.cos(var3 * 3.1415927F * 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(var1.posX);
        int var6 = MathHelper.floor_double(var1.posZ);
        float var7 = (float) this.getWorldChunkManager().getTemperature(var5, var6);
        int var8 = this.getWorldChunkManager().getBiomeGenAt(var5, var6).getSkyColorByTemp(var7);
        float var9 = (float) (var8 >> 16 & 255) / 255.0F;
        float var10 = (float) (var8 >> 8 & 255) / 255.0F;
        float var11 = (float) (var8 & 255) / 255.0F;
        var9 *= var4;
        var10 *= var4;
        var11 *= var4;
        float var12 = this.getRainStrength(var2);
        float var13;
        float var14;
        if (var12 > 0.0F) {
            var13 = (var9 * 0.3F + var10 * 0.59F + var11 * 0.11F) * 0.6F;
            var14 = 1.0F - var12 * 0.75F;
            var9 = var9 * var14 + var13 * (1.0F - var14);
            var10 = var10 * var14 + var13 * (1.0F - var14);
            var11 = var11 * var14 + var13 * (1.0F - var14);
        }

        var13 = this.getWeightedThunderStrength(var2);
        if (var13 > 0.0F) {
            var14 = (var9 * 0.3F + var10 * 0.59F + var11 * 0.11F) * 0.2F;
            float var15 = 1.0F - var13 * 0.75F;
            var9 = var9 * var15 + var14 * (1.0F - var15);
            var10 = var10 * var15 + var14 * (1.0F - var15);
            var11 = var11 * var15 + var14 * (1.0F - var15);
        }

        if (this.field_27172_i > 0) {
            var14 = (float) this.field_27172_i - var2;
            if (var14 > 1.0F) {
                var14 = 1.0F;
            }

            var14 *= 0.45F;
            var9 = var9 * (1.0F - var14) + 0.8F * var14;
            var10 = var10 * (1.0F - var14) + 0.8F * var14;
            var11 = var11 * (1.0F - var14) + 1.0F * var14;
        }

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