package com.prupe.mcpatcher.sky;
import com.prupe.mcpatcher.Config;
import com.prupe.mcpatcher.MCLogger;
import com.prupe.mcpatcher.TexturePackAPI;
import com.prupe.mcpatcher.TexturePackChangeHandler;
import com.prupe.mcpatcher.sky.SkyRenderer$1;
import com.prupe.mcpatcher.sky.SkyRenderer$Layer;
import com.prupe.mcpatcher.sky.SkyRenderer$WorldEntry;
import java.util.HashMap;
import net.minecraft.src.Minecraft;
import net.minecraft.src.ResourceLocation;
import net.minecraft.src.Tessellator;
import net.minecraft.src.World;
public class SkyRenderer {
private static final MCLogger logger = MCLogger.getLogger("Better Skies");
private static final boolean enable = Config.getBoolean("Better Skies", "skybox", true);
private static double worldTime;
private static float celestialAngle;
private static float rainStrength;
private static final HashMap<Integer, SkyRenderer$WorldEntry> worldSkies = new HashMap();
private static SkyRenderer$WorldEntry currentWorld;
public static boolean active;
public static void setup(World world, float partialTick, float celestialAngle) {
if (TexturePackAPI.isDefaultTexturePack()) {
active = false;
} else {
int worldType = Minecraft.getMinecraft().theWorld.provider.dimensionId;
SkyRenderer$WorldEntry newEntry = getWorldEntry(worldType);
if (newEntry != currentWorld && currentWorld != null) {
currentWorld.unloadTextures();
}
currentWorld = newEntry;
active = currentWorld.active();
if (active) {
worldTime = (double)((float)world.getWorldTime() + partialTick);
rainStrength = 1.0F - world.getRainStrength(partialTick);
celestialAngle = celestialAngle;
}
}
}
public static void renderAll() {
if (active) {
currentWorld.renderAll(Tessellator.instance);
}
}
public static ResourceLocation setupCelestialObject(ResourceLocation defaultTexture) {
if (active) {
SkyRenderer$Layer.clearBlendingMethod();
SkyRenderer$Layer layer = currentWorld.getCelestialObject(defaultTexture);
if (layer != null) {
layer.setBlendingMethod(rainStrength);
return SkyRenderer$Layer.access$300(layer);
}
}
return defaultTexture;
}
private static SkyRenderer$WorldEntry getWorldEntry(int worldType) {
SkyRenderer$WorldEntry entry = (SkyRenderer$WorldEntry)worldSkies.get(Integer.valueOf(worldType));
if (entry == null) {
entry = new SkyRenderer$WorldEntry(worldType);
worldSkies.put(Integer.valueOf(worldType), entry);
}
return entry;
}
static HashMap access$000() {
return worldSkies;
}
static boolean access$100() {
return enable;
}
static SkyRenderer$WorldEntry access$200(int x0) {
return getWorldEntry(x0);
}
static MCLogger access$400() {
return logger;
}
static float access$500() {
return rainStrength;
}
static double access$600() {
return worldTime;
}
static float access$700() {
return celestialAngle;
}
static {
TexturePackChangeHandler.register(new SkyRenderer$1("Better Skies", 2));
}
}