/*
* 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 net.minecraft.client.gui.GuiButton;
import mods.railcraft.api.signals.SignalAspect;
import mods.railcraft.common.blocks.signals.TileBoxController;
import mods.railcraft.common.plugins.forge.LocalizationPlugin;
import mods.railcraft.common.util.misc.Game;
import mods.railcraft.common.util.network.PacketDispatcher;
import mods.railcraft.common.util.network.PacketGuiReturn;
public class GuiBoxController extends GuiBasic {
private final TileBoxController tile;
private SignalAspect defaultAspect;
private SignalAspect poweredAspect;
public GuiBoxController(TileBoxController t) {
super(t.getName());
tile = t;
defaultAspect = t.defaultAspect;
poweredAspect = t.poweredAspect;
}
@Override
public void initGui() {
if (tile == null)
return;
buttonList.clear();
int w = (width - xSize) / 2;
int h = (height - ySize) / 2;
buttonList.add(new GuiButton(0, w + 10, h + 25, 30, 20, "<"));
buttonList.add(new GuiButton(1, w + 135, h + 25, 30, 20, ">"));
buttonList.add(new GuiButton(2, w + 10, h + 60, 30, 20, "<"));
buttonList.add(new GuiButton(3, w + 135, h + 60, 30, 20, ">"));
}
@Override
protected void drawExtras(int x, int y, float f) {
GuiTools.drawCenteredString(fontRendererObj, LocalizationPlugin.translate("railcraft.gui.box.controller.aspect.default"), 25);
GuiTools.drawCenteredString(fontRendererObj, LocalizationPlugin.translate(defaultAspect.getLocalizationTag()), 35);
GuiTools.drawCenteredString(fontRendererObj, LocalizationPlugin.translate("railcraft.gui.box.controller.aspect.redstone"), 60);
GuiTools.drawCenteredString(fontRendererObj, LocalizationPlugin.translate(poweredAspect.getLocalizationTag()), 70);
}
@Override
protected void actionPerformed(GuiButton button) {
if (tile == null)
return;
int normal = defaultAspect.ordinal();
int redstone = poweredAspect.ordinal();
switch (button.id) {
case 0:
normal--;
break;
case 1:
normal++;
break;
case 2:
redstone--;
break;
case 3:
redstone++;
break;
}
normal = Math.min(normal, SignalAspect.OFF.ordinal());
normal = Math.max(normal, 0);
redstone = Math.min(redstone, SignalAspect.OFF.ordinal());
redstone = Math.max(redstone, 0);
defaultAspect = SignalAspect.values()[normal];
poweredAspect = SignalAspect.values()[redstone];
}
@Override
public void onGuiClosed() {
if (Game.isNotHost(tile.getWorld())) {
tile.defaultAspect = defaultAspect;
tile.poweredAspect = poweredAspect;
PacketGuiReturn pkt = new PacketGuiReturn(tile);
PacketDispatcher.sendToServer(pkt);
}
}
}