package electrosphere.menu; import electrosphere.controls.ControlHandler; import electrosphere.engine.LoadingThread; import electrosphere.main.Globals; import electrosphere.main.Main; import electrosphere.net.NetUtils; import electrosphere.net.client.ClientNetworking; import electrosphere.renderer.ui.Widget; import electrosphere.renderer.ui.font.TextBox; /** * * @author amaterasu */ public class MenuTransition { public static void selectOption(Menu m){ switch(m.getType()){ case TITLE_MENU: switch(m.getCurrentOption()){ //single player case 0: m.dispose(); Globals.loadingThread = new LoadingThread(LoadingThread.LOAD_MAIN_GAME); Globals.RUN_CLIENT = true; Globals.RUN_SERVER = true; Globals.loadingThread.start(); break; //multi player case 1: m.dispose(); Globals.currentMenu = MenuUtils.createMultiplayerMenu(); break; //arena case 2: m.dispose(); Globals.loadingThread = new LoadingThread(LoadingThread.LOAD_ARENA); Globals.RUN_CLIENT = true; Globals.RUN_SERVER = true; Globals.loadingThread.start(); break; //options case 3: m.dispose(); Globals.currentMenu = MenuUtils.createOptionsMainMenu(); break; //test case 4: m.dispose(); Globals.currentMenu = MenuUtils.createTestMainMenu(); break; } break; case MULTIPLAYER_MENU: switch(m.getCurrentOption()){ //HOST case 0: m.dispose(); Globals.loadingThread = new LoadingThread(LoadingThread.LOAD_MAIN_GAME); Globals.RUN_CLIENT = true; Globals.RUN_SERVER = true; Globals.loadingThread.start(); break; //JOIN case 1: m.dispose(); Globals.currentMenu = MenuUtils.createIPMenu(); break; //back case 2: backout(m); break; } break; case IP_MENU: switch(m.getCurrentOption()){ //connect case 2: NetUtils.setAddress( ( (TextBox)m.getOptions().get(0) ).getText() ); NetUtils.setPort( Integer.parseInt( ( (TextBox)m.getOptions().get(1) ).getText() ) ); m.dispose(); Globals.loadingThread = new LoadingThread(LoadingThread.LOAD_MAIN_GAME); Globals.RUN_CLIENT = true; Globals.RUN_SERVER = false; Globals.loadingThread.start(); break; //back case 3: backout(m); break; } break; } } public static void backout(Menu m){ switch(m.getType()){ case TITLE_MENU: Main.running = false; break; case MULTIPLAYER_MENU: m.dispose(); Globals.currentMenu = MenuUtils.createTitleMenu(); break; case IP_MENU: m.dispose(); Globals.currentMenu = MenuUtils.createMultiplayerMenu(); break; case OPTIONS_MAIN_MENU: m.dispose(); Globals.currentMenu = MenuUtils.createTitleMenu(); break; case TEST: m.dispose(); Globals.currentMenu = MenuUtils.createTitleMenu(); break; } } public static void menuType(Menu m, String code){ char toWrite = ' '; Widget currentOption = m.getOptions().get(m.getCurrentOption()); boolean backspace = false; switch(code){ case ControlHandler.DATA_STRING_INPUT_CODE_MENU_TYPE_BACKSPACE: if(currentOption instanceof TextBox){ TextBox currentTextBox = (TextBox)currentOption; String currentText = currentTextBox.getText(); if(currentText.length() > 0){ currentTextBox.setText(currentText.substring(0, currentText.length() - 1)); } } backspace = true; break; case ControlHandler.DATA_STRING_INPUT_CODE_MENU_TYPE_0: toWrite = '0'; break; case ControlHandler.DATA_STRING_INPUT_CODE_MENU_TYPE_1: toWrite = '1'; break; case ControlHandler.DATA_STRING_INPUT_CODE_MENU_TYPE_2: toWrite = '2'; break; case ControlHandler.DATA_STRING_INPUT_CODE_MENU_TYPE_3: toWrite = '3'; break; case ControlHandler.DATA_STRING_INPUT_CODE_MENU_TYPE_4: toWrite = '4'; break; case ControlHandler.DATA_STRING_INPUT_CODE_MENU_TYPE_5: toWrite = '5'; break; case ControlHandler.DATA_STRING_INPUT_CODE_MENU_TYPE_6: toWrite = '6'; break; case ControlHandler.DATA_STRING_INPUT_CODE_MENU_TYPE_7: toWrite = '7'; break; case ControlHandler.DATA_STRING_INPUT_CODE_MENU_TYPE_8: toWrite = '8'; break; case ControlHandler.DATA_STRING_INPUT_CODE_MENU_TYPE_9: toWrite = '9'; break; case ControlHandler.DATA_STRING_INPUT_CODE_MENU_TYPE_PERIOD: toWrite = '.'; break; } if(!backspace){ if(currentOption instanceof TextBox){ TextBox currentTextBox = (TextBox)currentOption; String currentText = currentTextBox.getText(); if(currentText.length() < currentTextBox.getCols()){ currentTextBox.setText(currentText + toWrite); } } } } }