/*
* Copyright (C) 2012,2013 yogpstop
* This program is free software: you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the
* GNU Lesser General Public License along with this program.
* If not, see <http://www.gnu.org/licenses/>.
*/
package org.yogpstop.tof;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.GuiSlot;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.util.StatCollector;
import net.minecraft.world.biome.BiomeGenBase;
@SideOnly(Side.CLIENT)
public class GuiSlotBiomeList extends GuiSlot {
private static final TreeMap<Integer, String> biome = new TreeMap<Integer, String>();
static {
for (int i = 0; i < BiomeGenBase.biomeList.length; i++) {
if (BiomeGenBase.biomeList[i] != null) {
if (!BiomeGenBase.biomeList[i].biomeName.contains("Hell")) biome.put(i, BiomeGenBase.biomeList[i].biomeName);
}
}
}
private int[] biomeid;
private GuiButton[] onoff;
private GuiScreen parent;
private int ore;
public GuiSlotBiomeList(Minecraft par1Minecraft, int par2, int par3, int par4, int par5, int par6, GuiScreen parents, int oreID) {
super(par1Minecraft, par2, par3, par4, par5, par6);
this.biomeid = new int[biome.size()];
this.onoff = new GuiButton[biome.size()];
Set<Map.Entry<Integer, String>> entrySet = biome.entrySet();
Iterator<Map.Entry<Integer, String>> it = entrySet.iterator();
int i = 0;
while (it.hasNext()) {
Map.Entry<Integer, String> entry = it.next();
this.biomeid[i] = entry.getKey();
i++;
}
this.ore = oreID;
this.parent = parents;
}
@Override
protected int getSize() {
return biome.size();
}
@Override
protected void elementClicked(int var1, boolean var2) {
if (TimesOreForge.setting.get(this.ore).allBiome) return;
if (TimesOreForge.setting.get(this.ore).biomes.contains(this.biomeid[var1])) {
TimesOreForge.setting.get(this.ore).biomes.remove(TimesOreForge.setting.get(this.ore).biomes.indexOf(this.biomeid[var1]));
} else {
TimesOreForge.setting.get(this.ore).biomes.add(this.biomeid[var1]);
}
this.onoff[var1].displayString = (TimesOreForge.setting.get(this.ore).biomes.contains(this.biomeid[var1]) ? StatCollector
.translateToLocal("options.on") : StatCollector.translateToLocal("options.off"));
}
@Override
protected boolean isSelected(int var1) {
return false;
}
@Override
protected void drawSlot(int var1, int var2, int var3, int var4, Tessellator var5) {
if (TimesOreForge.setting.get(this.ore).allBiome) return;
this.onoff[var1] = new GuiButton(var1, this.parent.width / 2 - 100, var3 + 2, 30, 10,
(TimesOreForge.setting.get(this.ore).biomes.contains(this.biomeid[var1]) ? StatCollector.translateToLocal("options.on")
: StatCollector.translateToLocal("options.off")));
this.onoff[var1].enabled = false;
this.onoff[var1].drawButton(Minecraft.getMinecraft(), 0, 0);
Minecraft.getMinecraft().fontRenderer.drawStringWithShadow(biome.get(this.biomeid[var1]),
(this.parent.width - Minecraft.getMinecraft().fontRenderer.getStringWidth(biome.get(this.biomeid[var1]))) / 2, var3 + 1, 0xFFFFFF);
}
@Override
protected void drawBackground() {
this.parent.drawDefaultBackground();
}
}