Renderer/src/main/java/electrosphere/menu/mainmenu/MenuGeneratorsTitleMenu.java
austin 5563b4366f
Some checks reported errors
studiorailgun/Renderer/pipeline/head Something is wrong with the build of this commit
thread manager
2024-08-22 21:24:44 -04:00

112 lines
4.6 KiB
Java

package electrosphere.menu.mainmenu;
import electrosphere.engine.Globals;
import electrosphere.engine.loadingthreads.LoadingThread;
import electrosphere.engine.loadingthreads.LoadingThread.LoadingThreadType;
import electrosphere.menu.MenuGenerators;
import electrosphere.menu.WindowUtils;
import electrosphere.renderer.ui.elements.Button;
import electrosphere.renderer.ui.elements.Div;
import electrosphere.renderer.ui.elements.Label;
import electrosphere.renderer.ui.elementtypes.ClickableElement;
import electrosphere.renderer.ui.elementtypes.ContainerElement.YogaAlignment;
import electrosphere.renderer.ui.elementtypes.ContainerElement.YogaJustification;
import electrosphere.renderer.ui.elementtypes.Element;
import electrosphere.renderer.ui.events.ClickEvent;
/**
* Menu generators for the title menu
*/
public class MenuGeneratorsTitleMenu {
/**
* Creates the main title menu
* @return The menu element
*/
public static Element createTitleMenu(){
Div rVal = Div.createDiv();
//top-bottom
rVal.setJustifyContent(YogaJustification.Center);
//left-right
rVal.setAlignItems(YogaAlignment.Center);
rVal.setAlignContent(YogaAlignment.Center);
rVal.setFlexGrow(1.0f);
//label (title)
Label titleLabel = new Label(1.0f);
titleLabel.setText("ORPG");
rVal.addChild(titleLabel);
//button (multiplayer)
Button singleplayerButton = new Button();
Label singleplayerLabel = new Label(1.0f);
singleplayerLabel.setText("Singleplayer");
singleplayerButton.addChild(singleplayerLabel);
rVal.addChild(singleplayerButton);
singleplayerButton.setOnClick(new ClickableElement.ClickEventCallback(){public boolean execute(ClickEvent event){
WindowUtils.replaceMainMenuContents(MenuGenerators.createWorldSelectMenu());
return false;
}});
//button (multiplayer)
Button multiplayerButton = new Button();
Label multiplayerLabel = new Label(1.0f);
multiplayerLabel.setText("Multiplayer");
multiplayerButton.addChild(multiplayerLabel);
rVal.addChild(multiplayerButton);
multiplayerButton.setOnClick(new ClickableElement.ClickEventCallback(){public boolean execute(ClickEvent event){
WindowUtils.replaceMainMenuContents(MenuGenerators.createMultiplayerMenu());
return false;
}});
//button (static level)
Button staticLevelButton = new Button();
Label staticLevelLabel = new Label(1.0f);
staticLevelLabel.setText("Level Editor");
staticLevelButton.addChild(staticLevelLabel);
rVal.addChild(staticLevelButton);
staticLevelButton.setOnClick(new ClickableElement.ClickEventCallback(){public boolean execute(ClickEvent event){
WindowUtils.replaceMainMenuContents(MenuGeneratorsLevelEditor.createLevelEditorTopMenu());
return false;
}});
//button (options)
Button optionsButton = new Button();
Label optionsLabel = new Label(1.0f);
optionsLabel.setText("Options");
optionsButton.addChild(optionsLabel);
rVal.addChild(optionsButton);
optionsButton.setOnClick(new ClickableElement.ClickEventCallback(){public boolean execute(ClickEvent event){
WindowUtils.replaceMainMenuContents(MenuGenerators.createOptionsMainMenu());
return false;
}});
//button (sp debug)
Button uiDebugSPQuickstartButton = new Button();
Label uiDebugSPQuickstartLabel = new Label(1.0f);
uiDebugSPQuickstartLabel.setText("Debug SP Quickstart");
uiDebugSPQuickstartButton.addChild(uiDebugSPQuickstartLabel);
rVal.addChild(uiDebugSPQuickstartButton);
uiDebugSPQuickstartButton.setOnClick(new ClickableElement.ClickEventCallback(){public boolean execute(ClickEvent event){
LoadingThread loadingThread = new LoadingThread(LoadingThreadType.DEBUG_RANDOM_SP_WORLD);
Globals.RUN_CLIENT = true;
Globals.RUN_SERVER = true;
Globals.threadManager.start(loadingThread);
return false;
}});
//button (ui testing)
Button uiTestingButton = new Button();
Label uiTestingLabel = new Label(1.0f);
uiTestingLabel.setText("UI Testing");
uiTestingButton.addChild(uiTestingLabel);
rVal.addChild(uiTestingButton);
uiTestingButton.setOnClick(new ClickableElement.ClickEventCallback(){public boolean execute(ClickEvent event){
WindowUtils.replaceMainMenuContents(MenuGeneratorsUITesting.createUITestMenu());
return false;
}});
return rVal;
}
}