Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #region Usings
- using Microsoft.Xna.Framework;
- using Rite_of_passage.Globals;
- using Rite_of_passage.Models.GUI.Elements.AnimatedPanels;
- using Rite_of_passage.Models.GUI.Models;
- using Rite_of_passage.Tools;
- #endregion
- namespace Rite_of_passage.Models.GUI.Menus
- {
- public class GuiMainMenu : GuiTemplate
- {
- #region Load
- public override void LoadContent()
- {
- LoadSplashScreen();
- LoadMainMenu();
- LoadOptionsMenu();
- LoadFullScreen();
- LoadQuitMenu();
- SelectMenu("SplashScreen");
- base.LoadContent();
- }
- private void LoadFullScreen()
- {
- var yes = new TextPanel("< Yes >",
- new Vector2(Screen.Center.X, Screen.Center.Y - VerticalSpacing / 2f),
- MediumFont,
- Color.White, true);
- var no = new TextPanel("< No >",
- new Vector2(Screen.Center.X, Screen.Center.Y + VerticalSpacing / 2f),
- MediumFont,
- Color.White, true);
- var back = new TextPanel("< Back >",
- new Vector2(Screen.Center.X, Screen.Center.Y + VerticalSpacing * 2f),
- MediumFont,
- Color.White, true);
- var title = new TextPanel("-- Are you sure? --",
- new Vector2(Screen.Center.X, yes.Position.Y - VerticalSpacing * 2),
- MediumFont,
- Color.White, true);
- GuiGroup newGroup = new GuiGroup();
- newGroup.Add(yes);
- newGroup.Add(no);
- newGroup.Add(back);
- newGroup.SetTitle(title);
- DicoGroups.Add("FullScreen", newGroup);
- }
- private void LoadOptionsMenu()
- {
- var reDefKeys = new TextPanel("< Redefine Keys >",
- new Vector2(Screen.Center.X, Screen.Center.Y - VerticalSpacing / 2f),
- MediumFont,
- Color.White, true);
- var fullScreen = new TextPanel("< Toggle FullScreen >",
- new Vector2(Screen.Center.X, Screen.Center.Y + VerticalSpacing / 2f),
- MediumFont,
- Color.White, true);
- var back = new TextPanel("< Back >",
- new Vector2(Screen.Center.X, Screen.Center.Y + VerticalSpacing * 2f),
- MediumFont,
- Color.White, true);
- var title = new TextPanel("-- Options --",
- new Vector2(Screen.Center.X, reDefKeys.Position.Y - VerticalSpacing * 2),
- MediumFont,
- Color.White, true);
- GuiGroup newGroup = new GuiGroup();
- newGroup.Add(reDefKeys);
- newGroup.Add(fullScreen);
- newGroup.Add(back);
- newGroup.SetTitle(title);
- DicoGroups.Add("Options", newGroup);
- }
- private void LoadQuitMenu()
- {
- var yes = new TextPanel("< Yes >",
- new Vector2(Screen.Center.X, Screen.Center.Y - VerticalSpacing / 2f),
- MediumFont,
- Color.White, true);
- var no = new TextPanel("< No >",
- new Vector2(Screen.Center.X, Screen.Center.Y + VerticalSpacing / 2f),
- MediumFont,
- Color.White, true);
- var title = new TextPanel("-- Are you sure? --",
- new Vector2(Screen.Center.X, yes.Position.Y - VerticalSpacing * 2),
- MediumFont,
- Color.White, true);
- GuiGroup newGroup = new GuiGroup();
- newGroup.Add(yes);
- newGroup.Add(no);
- newGroup.SetTitle(title);
- DicoGroups.Add("Quit", newGroup);
- }
- private void LoadMainMenu()
- {
- var start = new TextPanel("< Start >",
- new Vector2(Screen.Center.X, Screen.Center.Y - VerticalSpacing / 2f),
- MediumFont,
- Color.White, true);
- var options = new TextPanel("< Options >",
- new Vector2(Screen.Center.X, Screen.Center.Y + VerticalSpacing / 2f),
- MediumFont,
- Color.White, true);
- var quit = new TextPanel("< Quit >",
- new Vector2(Screen.Center.X, Screen.Center.Y + VerticalSpacing * 2f),
- MediumFont,
- Color.White, true);
- var title = new TextPanel("-- Main Menu --",
- new Vector2(Screen.Center.X, Screen.Center.Y - VerticalSpacing * 2),
- MediumFont,
- Color.White, true);
- GuiGroup newGroup = new GuiGroup();
- newGroup.Add(start);
- newGroup.Add(options);
- newGroup.Add(quit);
- newGroup.SetTitle(title);
- newGroup.SetAlpha(0);
- newGroup.TurnOn();
- DicoGroups.Add("MainMenu", newGroup);
- }
- private void LoadSplashScreen()
- {
- string textPanelString = "< Press Space >";
- var textPanel = new TextPanel(textPanelString,
- Screen.Center,
- BigFont,
- Color.White, true);
- textPanel.SetStep(0.02f);
- textPanel.Blink(true);
- GuiGroup newGroup = new GuiGroup { IsActive = true };
- newGroup.Add(textPanel);
- newGroup.IsCursor = false;
- DicoGroups.Add("SplashScreen", newGroup);
- }
- #endregion
- public override void Confirm()
- {
- switch (CurrentMenu)
- {
- case "SplashScreen":
- EmitConfirmSound();
- SelectMenu("MainMenu");
- ResetCursorPos();
- break;
- case "MainMenu":
- if (Selection == 0)
- {
- EmitConfirmSound();
- OnStart?.Invoke();
- }
- else if (Selection == 1)
- {
- EmitClickSound();
- SelectMenu("Options");
- ResetCursorPos();
- }
- else if (Selection == 2)
- {
- EmitClickSound();
- SelectMenu("Quit");
- ResetCursorPos();
- }
- break;
- case "Options":
- if (Selection == 0)
- {
- World.Camera.Shake(Camera.Impact.Small);
- EmitErrorSound();
- }
- else if (Selection == 1)
- {
- EmitClickSound();
- SelectMenu("FullScreen");
- ResetCursorPos();
- }
- else if (Selection == 2)
- {
- EmitCancelSound();
- SelectMenu("MainMenu");
- ResetCursorPos();
- }
- break;
- case "Quit":
- if (Selection == 0)
- OnQuit?.Invoke();
- else if (Selection == 1)
- {
- EmitCancelSound();
- SelectMenu("MainMenu");
- ResetCursorPos();
- }
- break;
- case "FullScreen":
- if (Selection == 0)
- {
- if (!Screen.IsFullScreen)
- {
- EmitClickSound();
- Screen.SetFullScreen(true);
- }
- }
- else if (Selection == 1)
- {
- if (Screen.IsFullScreen)
- {
- EmitClickSound();
- Screen.SetFullScreen(false);
- }
- }
- else if (Selection == 2)
- {
- EmitCancelSound();
- SelectMenu("Options");
- ResetCursorPos();
- }
- break;
- }
- base.Confirm();
- }
- public override void Cancel()
- {
- switch (CurrentMenu)
- {
- case "SplashScreen":
- break;
- case "MainMenu":
- SelectMenu("SplashScreen");
- break;
- case "Options":
- SelectMenu("MainMenu");
- ResetCursorPos();
- break;
- case "FullScreen":
- SelectMenu("Options");
- ResetCursorPos();
- break;
- case "Quit":
- SelectMenu("MainMenu");
- ResetCursorPos();
- break;
- }
- if (CurrentMenu != "SplashScreen")
- EmitCancelSound();
- base.Cancel();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement