Renderer/src/main/java/electrosphere/menu/MenuTransition.java
2021-10-23 10:10:16 -04:00

181 lines
6.8 KiB
Java

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);
}
}
}
}
}