/*
* Copyright (c) CovertJaguar, 2014 http://railcraft.info
*
* This code is the property of CovertJaguar
* and may only be used with explicit written
* permission unless otherwise specified on the
* license page at http://railcraft.info/wiki/info:license.
*/
package mods.railcraft.client.gui;
import java.util.ArrayList;
import java.util.List;
import net.minecraft.client.gui.GuiButton;
import mods.railcraft.client.gui.buttons.GuiBetterButton;
import mods.railcraft.client.gui.buttons.GuiToggleButton;
import mods.railcraft.common.blocks.detector.TileDetector;
import mods.railcraft.common.blocks.detector.types.DetectorAnimal;
import mods.railcraft.common.core.RailcraftConstants;
import mods.railcraft.common.util.misc.Game;
import mods.railcraft.common.util.network.PacketDispatcher;
import mods.railcraft.common.util.network.PacketGuiReturn;
public class GuiDetectorAnimal extends GuiBasic {
private final TileDetector tile;
private final DetectorAnimal detector;
protected GuiDetectorAnimal(TileDetector tile) {
super(tile.getName(), RailcraftConstants.GUI_TEXTURE_FOLDER + "gui_long.png", 256, 88);
this.tile = tile;
this.detector = (DetectorAnimal) tile.getDetector();
}
@Override
public void initGui() {
if (tile == null) {
return;
}
buttonList.clear();
int w = (width - xSize) / 2;
int h = (height - ySize) / 2;
List<GuiBetterButton> row1 = new ArrayList<GuiBetterButton>();
row1.add(new GuiToggleButton(0, 0, h + 25, 50, "Chicken", detector.chicken));
row1.add(new GuiToggleButton(1, 0, h + 25, 50, "Cow", detector.cow));
row1.add(new GuiToggleButton(2, 0, h + 25, 50, "Pig", detector.pig));
row1.add(new GuiToggleButton(3, 0, h + 25, 50, "Sheep", detector.sheep));
GuiTools.newButtonRowAuto(buttonList, w, xSize, row1);
List<GuiBetterButton> row2 = new ArrayList<GuiBetterButton>();
row2.add(new GuiToggleButton(4, 0, h + 55, 50, "Wolf", detector.wolf));
row2.add(new GuiToggleButton(5, 0, h + 55, 70, "Mooshroom", detector.mooshroom));
row2.add(new GuiToggleButton(6, 0, h + 55, 50, "Other", detector.other));
GuiTools.newButtonRowAuto(buttonList, w, xSize, row2);
}
@Override
protected void actionPerformed(GuiButton button) {
if (tile == null) {
return;
}
switch (button.id) {
case 0:
detector.chicken = !detector.chicken;
((GuiToggleButton) button).active = detector.chicken;
break;
case 1:
detector.cow = !detector.cow;
((GuiToggleButton) button).active = detector.cow;
break;
case 2:
detector.pig = !detector.pig;
((GuiToggleButton) button).active = detector.pig;
break;
case 3:
detector.sheep = !detector.sheep;
((GuiToggleButton) button).active = detector.sheep;
break;
case 4:
detector.wolf = !detector.wolf;
((GuiToggleButton) button).active = detector.wolf;
break;
case 5:
detector.mooshroom = !detector.mooshroom;
((GuiToggleButton) button).active = detector.mooshroom;
break;
case 6:
detector.other = !detector.other;
((GuiToggleButton) button).active = detector.other;
break;
}
}
@Override
public void onGuiClosed() {
if (Game.isNotHost(tile.getWorld())) {
PacketGuiReturn pkt = new PacketGuiReturn(tile);
PacketDispatcher.sendToServer(pkt);
}
}
}