diff options
author | Spartan322 <Megacake1234@gmail.com> | 2023-02-10 10:18:46 +0100 |
---|---|---|
committer | Spartan322 <Megacake1234@gmail.com> | 2023-02-10 10:31:28 +0100 |
commit | 3798205c740e7e2faf2594866cb497260012508c (patch) | |
tree | 4ca4a0835cb833fbba1983f0e8de5fa66227b86e /game/src/OptionMenu/ScreenModeSelector.gd | |
parent | 6525b89a37a31eaf88182b11410bd46b6658e297 (diff) |
Implement a usable settings UI, should fulfill:
SS-58, SS-61, SS-6, SS-9, SS-10, SS-11, SS-13
UI-11, UI-12, UI-19, UI-44, UI-47, UI-22
Diffstat (limited to 'game/src/OptionMenu/ScreenModeSelector.gd')
-rw-r--r-- | game/src/OptionMenu/ScreenModeSelector.gd | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/game/src/OptionMenu/ScreenModeSelector.gd b/game/src/OptionMenu/ScreenModeSelector.gd new file mode 100644 index 0000000..fae0771 --- /dev/null +++ b/game/src/OptionMenu/ScreenModeSelector.gd @@ -0,0 +1,33 @@ +extends SettingOptionButton + +enum ScreenMode { Unknown = -1, Fullscreen, Borderless, Windowed } + +func get_screen_mode_from_window_mode(window_mode : int) -> ScreenMode: + match window_mode: + Window.MODE_EXCLUSIVE_FULLSCREEN: + return ScreenMode.Fullscreen + Window.MODE_FULLSCREEN: + return ScreenMode.Borderless + Window.MODE_WINDOWED: + return ScreenMode.Windowed + _: + return ScreenMode.Unknown + +func get_window_mode_from_screen_mode(screen_mode : int) -> Window.Mode: + match screen_mode: + ScreenMode.Fullscreen: + return Window.MODE_EXCLUSIVE_FULLSCREEN + ScreenMode.Borderless: + return Window.MODE_FULLSCREEN + ScreenMode.Windowed: + return Window.MODE_WINDOWED + _: + return Window.MODE_EXCLUSIVE_FULLSCREEN + +func _on_item_selected(index : int): + print("Selected index: %d" % index) + + var window := get_viewport().get_window() + var current_resolution := Resolution.get_current_resolution() + window.mode = get_window_mode_from_screen_mode(index) + Resolution.set_resolution(current_resolution) |