package pneumaticCraft.client.gui.pneumaticHelmet; import java.util.ArrayList; import java.util.Arrays; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.resources.I18n; import pneumaticCraft.api.client.pneumaticHelmet.IGuiScreen; import pneumaticCraft.api.client.pneumaticHelmet.IOptionPage; import pneumaticCraft.client.render.pneumaticArmor.ArmorMessage; import pneumaticCraft.client.render.pneumaticArmor.CoordTrackUpgradeHandler; import pneumaticCraft.client.render.pneumaticArmor.HUDHandler; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class GuiCoordinateTrackerOptions implements IOptionPage{ private GuiButton wirePath; private GuiButton pathEnabled; private GuiButton xRayEnabled; private GuiButton pathUpdateRate; @Override public String getPageName(){ return "Coordinate Tracker Upgrade"; } @Override public void initGui(IGuiScreen gui){ gui.getButtonList().add(new GuiButton(10, 30, 40, 150, 20, "Select Target...")); gui.getButtonList().add(new GuiButton(11, 30, 62, 150, 20, "Navigate to Surface...")); pathEnabled = new GuiButton(12, 30, 128, 150, 20, ""); wirePath = new GuiButton(13, 30, 150, 150, 20, ""); xRayEnabled = new GuiButton(14, 30, 172, 150, 20, ""); pathUpdateRate = new GuiButton(15, 30, 194, 150, 20, ""); gui.getButtonList().add(pathEnabled); gui.getButtonList().add(wirePath); gui.getButtonList().add(xRayEnabled); gui.getButtonList().add(pathUpdateRate); updateButtonTexts(); } @Override public void actionPerformed(GuiButton button){ Minecraft mc = FMLClientHandler.instance().getClient(); CoordTrackUpgradeHandler coordHandler = HUDHandler.instance().getSpecificRenderer(CoordTrackUpgradeHandler.class); switch(button.id){ case 10: mc.displayGuiScreen((GuiScreen)null); mc.setIngameFocus(); coordHandler.isListeningToCoordTrackerSetting = true; HUDHandler.instance().addMessage(new ArmorMessage("Changing Coordinate Tracker coordinate...", Arrays.asList("Right-click the desired coordinate"), 90, 0x7000AA00)); break; case 11: mc.displayGuiScreen((GuiScreen)null); mc.setIngameFocus(); switch(coordHandler.navigateToSurface(mc.thePlayer)){ case EASY_PATH: HUDHandler.instance().addMessage(new ArmorMessage(I18n.format("pneumaticHelmet.message.coordinateTracker.routeFound"), new ArrayList<String>(), 90, 0x7000AA00)); break; case DRONE_PATH: HUDHandler.instance().addMessage(new ArmorMessage(I18n.format("pneumaticHelmet.message.coordinateTracker.harderRouteFound"), new ArrayList<String>(), 90, 0x7044AA00)); break; case NO_PATH: HUDHandler.instance().addMessage(new ArmorMessage(I18n.format("pneumaticHelmet.message.coordinateTracker.noRouteFound"), new ArrayList<String>(), 90, 0x70FF0000)); break; } break; case 12: coordHandler.pathEnabled = !coordHandler.pathEnabled; break; case 13: coordHandler.wirePath = !coordHandler.wirePath; break; case 14: coordHandler.xRayEnabled = !coordHandler.xRayEnabled; break; case 15: coordHandler.pathUpdateSetting++; if(coordHandler.pathUpdateSetting > 2) { coordHandler.pathUpdateSetting = 0; } break; } updateButtonTexts(); coordHandler.saveToConfig(); } @Override public void drawPreButtons(int x, int y, float partialTicks){} @Override public void drawScreen(int x, int y, float partialTicks){} private void updateButtonTexts(){ CoordTrackUpgradeHandler coordHandler = HUDHandler.instance().getSpecificRenderer(CoordTrackUpgradeHandler.class); pathEnabled.displayString = coordHandler.pathEnabled ? "Navigation Enabled" : "Navigation Disabled"; wirePath.displayString = coordHandler.wirePath ? "Wire Navigation" : "Tile Navigation"; xRayEnabled.displayString = coordHandler.xRayEnabled ? "X-Ray Enabled" : "X-Ray Disabled"; switch(coordHandler.pathUpdateSetting){ case 0: pathUpdateRate.displayString = "Path update rate: Low"; break; case 1: pathUpdateRate.displayString = "Path update rate: Normal"; break; case 2: pathUpdateRate.displayString = "Path update rate: Fast"; break; } wirePath.enabled = coordHandler.pathEnabled; xRayEnabled.enabled = coordHandler.pathEnabled; pathUpdateRate.enabled = coordHandler.pathEnabled; } @Override public void keyTyped(char ch, int key){} @Override public void mouseClicked(int x, int y, int button){} @Override public void handleMouseInput(){} @Override public boolean canBeTurnedOff(){ return true; } @Override public boolean displaySettingsText(){ return true; } }