extends Control var start_menu var level_select_menu var options_menu var keybind_menu onready var keybind_button_container = get_node("Keybinds_Menu/Keybind_Container") var keybinds export (String, FILE) var testing_area_scene func _ready(): start_menu = $Start_Menu level_select_menu = $Level_Select_Menu options_menu = $Options_Menu keybind_menu = $Keybind_Menu # Connect all of the start menu buttons $Start_Menu/Button_Start.connect("pressed", self, "start_menu_button_pressed", ["start"]) $Start_Menu/Button_Open_Godot.connect("pressed", self, "start_menu_button_pressed", ["open_godot"]) $Start_Menu/Button_Options.connect("pressed", self, "start_menu_button_pressed", ["options"]) $Start_Menu/Button_Quit.connect("pressed", self, "start_menu_button_pressed", ["quit"]) # Connect all of the options menu buttons $Options_Menu/Button_Back.connect("pressed", self, "options_menu_button_pressed", ["back"]) $Options_Menu/Button_Fullscreen.connect("pressed", self, "options_menu_button_pressed", ["fullscreen"]) $Options_Menu/Check_Button_VSync.connect("pressed", self, "options_menu_button_pressed", ["vsync"]) $Options_Menu/Check_Button_Debug.connect("pressed", self, "options_menu_button_pressed", ["debug"]) $Options_Menu/Button_Keybind.connect("pressed", self, "keybind_menu_button_pressed", ["keybind"]) # Connect all the Keybind menu buttoms # $Keybind_Menu/Button_Move_Forward.connect("pressed", self, "keybind_menu_button_pressed", ["back"]) # Some times when returning to the title screen the mouse is still captured even though it shouldn't be. # To prevent this from breaking the game, we just set it here too Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) # Get the globals singleton var globals = get_node("/root/Globals") # Get the mouse and joypad sensitivity $Options_Menu/HSlider_Mouse_Sensitivity.value = globals.mouse_sensitivity # $Options_Menu/HSlider_Joypad_Sensitivity.value = globals.joypad_sensitivity func start_menu_button_pressed(button_name): if button_name == "start": get_node("/root/Globals").load_new_scene(testing_area_scene) # level_select_menu.visible = true # start_menu.visible = false elif button_name == "open_godot": OS.shell_open("https://gauss.extollit.com/revenant/project/") elif button_name == "options": options_menu.visible = true start_menu.visible = false elif button_name == "quit": get_tree().quit() func options_menu_button_pressed(button_name): if button_name == "back": start_menu.visible = true options_menu.visible = false keybind_menu.visible = false elif button_name == "fullscreen": OS.window_fullscreen = !OS.window_fullscreen elif button_name == "keybind": keybind_menu.visible = true elif button_name == "vsync": OS.vsync_enabled = $Options_Menu/Check_Button_VSync.pressed elif button_name == "debug": get_node("/root/Globals").set_debug_display($Options_Menu/Check_Button_Debug.pressed) func keybind_menu_button_pressed(button_name): if button_name == "back": start_menu.visible = true options_menu.visible = false elif button_name == "fullscreen": OS.window_fullscreen = !OS.window_fullscreen elif button_name == "vsync": OS.vsync_enabled = $Options_Menu/Check_Button_VSync.pressed elif button_name == "debug": get_node("/root/Globals").set_debug_display($Options_Menu/Check_Button_Debug.pressed) func set_mouse_and_joypad_sensitivity(): # Get the globals singleton var globals = get_node("/root/Globals") # Set the mouse and joypad sensitivity globals.mouse_sensitivity = $Options_Menu/HSlider_Mouse_Sensitivity.value