diff --git a/.godot/editor/create_recent.Node b/.godot/editor/create_recent.Node index 8957520..7d9bad4 100644 --- a/.godot/editor/create_recent.Node +++ b/.godot/editor/create_recent.Node @@ -1,7 +1,7 @@ +Button CheckBox OptionButton Label -Button HSlider Control CanvasLayer diff --git a/.godot/editor/editor_layout.cfg b/.godot/editor/editor_layout.cfg index 4a438fe..2cc0d7a 100644 --- a/.godot/editor/editor_layout.cfg +++ b/.godot/editor/editor_layout.cfg @@ -12,15 +12,15 @@ dock_floating={} dock_split_2=0 dock_split_3=0 dock_hsplit_1=0 -dock_hsplit_2=270 -dock_hsplit_3=-328 +dock_hsplit_2=260 +dock_hsplit_3=-285 dock_hsplit_4=0 dock_filesystem_split=0 dock_filesystem_display_mode=0 dock_filesystem_file_sort=0 dock_filesystem_file_list_display_mode=1 -dock_filesystem_selected_paths=PackedStringArray("res://") -dock_filesystem_uncollapsed_paths=PackedStringArray("res://addons/kenney_particle_pack/") +dock_filesystem_selected_paths=PackedStringArray() +dock_filesystem_uncollapsed_paths=PackedStringArray("res://", "res://addons/kenney_particle_pack/") dock_3="Scene,Import" dock_4="FileSystem" dock_5="Inspector,Node,History" @@ -38,7 +38,7 @@ selected_bottom_panel_item=0 open_scripts=["res://Scripts/Player.gd", "res://Scripts/world.gd"] selected_script="res://Scripts/world.gd" -open_help=["FileAccess", "Input", "ResourceSaver"] +open_help=["CheckBox", "CheckButton", "FileAccess", "Input", "Label", "ResourceSaver"] script_split_offset=70 list_split_offset=0 diff --git a/.godot/editor/filesystem_cache8 b/.godot/editor/filesystem_cache8 index b71fb33..e6f3d8f 100644 --- a/.godot/editor/filesystem_cache8 +++ b/.godot/editor/filesystem_cache8 @@ -1,5 +1,5 @@ ea4bc82a6ad023ab7ee23ee620429895 -::res://::1701436760 +::res://::1701456972 icon.svg::CompressedTexture2D::8963615070695796116::1699534826::1699534826::1::::<><>:: ::res://addons/::1699534826 ::res://addons/godot-jolt/::1699534826 @@ -309,16 +309,17 @@ lambert1_metallicRoughness.png::CompressedTexture2D::8931258458639185901::169963 lambert1_normal.png::CompressedTexture2D::3998376482152544164::1699639136::1699639160::1::::<><>:: ::res://Occlusion Data/::1699901776 environment.occ::ArrayOccluder3D::2660494726846166203::1699901776::0::1::::<><>:: -::res://Prefabs/::1700275209 -player.tscn::PackedScene::4444783912067201683::1700275209::0::1::::<><>::res://Scripts/Player.gd<>uid://da1qh4xri24f2::::res://Models/kimber_1911/scene.gltf<>uid://d164amgdtaa5k::::res://Models/funny_rubber_chicken/chicken.tscn<>uid://bx0esoasfh733::::res://addons/kenney_particle_pack/star_06.png<>uid://cfwx1moklfkfj::::res://Sound Effects/weapon_gun_1911_A_41.ogg -::res://Saves/::1699904469 -::res://Scenes/::1700275209 +::res://Prefabs/::1701454347 +player.tscn::PackedScene::4444783912067201683::1701454347::0::1::::<><>::res://Scripts/Player.gd<>uid://da1qh4xri24f2::::res://Models/kimber_1911/scene.gltf<>uid://d164amgdtaa5k::::res://Models/funny_rubber_chicken/chicken.tscn<>uid://bx0esoasfh733::::res://addons/kenney_particle_pack/star_06.png<>uid://cfwx1moklfkfj::::res://Sound Effects/weapon_gun_1911_A_41.ogg +::res://Saves/::1701454093 +options.res::::-1::1701454362::0::1::::<><>:: +::res://Scenes/::1701454347 environment.tscn::PackedScene::8256961957080777526::1699901776::0::1::::<><>::uid://ca0iv4endjdmn -world.tscn::PackedScene::1877808985457939721::1700275209::0::1::::<><>::res://Scripts/world.gd<>uid://dpvy7sm57pjn7::::res://Scenes/environment.tscn<>uid://dhytg0w8gqdob::::res://addons/kenney_particle_pack/circle_05.png -::res://Scripts/::1700229275 +world.tscn::PackedScene::1877808985457939721::1701454347::0::1::::<><>::res://Scripts/world.gd<>uid://dpvy7sm57pjn7::::res://Scenes/environment.tscn<>uid://dhytg0w8gqdob::::res://addons/kenney_particle_pack/circle_05.png +::res://Scripts/::1701454345 chicken.gd::GDScript::-1::1699536631::0::1::::<>Node3D<>:: HatHider.gd::GDScript::-1::1699901776::0::1::::<>Node3D<>:: Player.gd::GDScript::-1::1700075062::0::1::::<>CharacterBody3D<>:: -world.gd::GDScript::-1::1700229275::0::1::::<>Node<>:: +world.gd::GDScript::-1::1701454345::0::1::::<>Node<>:: ::res://Sound Effects/::1699901776 weapon_gun_1911_A_41.ogg::AudioStreamOggVorbis::5170645470017560819::1699901776::1699901776::1::::<><>:: diff --git a/.godot/editor/filesystem_update4 b/.godot/editor/filesystem_update4 index 64715fb..dff5bbd 100644 --- a/.godot/editor/filesystem_update4 +++ b/.godot/editor/filesystem_update4 @@ -1,2 +1,3 @@ -res://Scripts/world.gd res://Scenes/world.tscn +res://Scripts/world.gd +res://Prefabs/player.tscn diff --git a/.godot/editor/player.tscn-editstate-10d6ba27c95124e9e2f66cb8ebb57635.cfg b/.godot/editor/player.tscn-editstate-10d6ba27c95124e9e2f66cb8ebb57635.cfg index a823213..5d2ddd1 100644 --- a/.godot/editor/player.tscn-editstate-10d6ba27c95124e9e2f66cb8ebb57635.cfg +++ b/.godot/editor/player.tscn-editstate-10d6ba27c95124e9e2f66cb8ebb57635.cfg @@ -174,4 +174,4 @@ Anim={ "zfar": 4000.01, "znear": 0.05 } -selected_nodes=Array[NodePath]([]) +selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17638/@Control@697/@Panel@698/@VBoxContainer@706/@HSplitContainer@709/@HSplitContainer@717/@HSplitContainer@725/@VBoxContainer@726/@VSplitContainer@728/@VSplitContainer@754/@VBoxContainer@755/@PanelContainer@800/MainScreen/@CanvasItemEditor@10090/@VSplitContainer@9915/@HSplitContainer@9917/@HSplitContainer@9919/@Control@9920/@SubViewportContainer@9921/@SubViewport@9922/World/CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/Reset")]) diff --git a/.godot/editor/project_metadata.cfg b/.godot/editor/project_metadata.cfg index 144d769..b885f6f 100644 --- a/.godot/editor/project_metadata.cfg +++ b/.godot/editor/project_metadata.cfg @@ -7,11 +7,11 @@ use_advanced_connections=false run_live_debug=true run_reload_scripts=true -run_debug_instances=2 +run_debug_instances=1 [dialog_bounds] -editor_settings=Rect2(830, 370, 900, 700) +editor_settings=Rect2(550, 184, 900, 700) create_new_node=Rect2(830, 370, 900, 700) project_settings=Rect2(485, 157, 900, 700) search_help=Rect2(396, 196, 1280, 720) @@ -20,7 +20,7 @@ export=Rect2(830, 371, 900, 708) [recent_files] scenes=["res://Prefabs/player.tscn", "res://Scenes/world.tscn", "res://Models/environment.glb", "res://Scenes/environment.tscn", "res://Models/Hats/11.tscn", "res://Models/Hats/10.tscn", "res://Models/Hats/9.tscn", "res://Models/Hats/8.tscn", "res://Models/Hats/7.tscn", "res://Models/Hats/6.tscn"] -scripts=["FileAccess", "ResourceSaver", "Input", "res://Scripts/Player.gd", "res://Scripts/world.gd", "InputEventMouseMotion", "InputEventJoypadMotion", "GeometryInstance3D", "ENetPacketPeer", "ENetMultiplayerPeer"] +scripts=["Label", "CheckButton", "ResourceSaver", "Input", "FileAccess", "CheckBox", "res://Scripts/Player.gd", "res://Scripts/world.gd", "InputEventMouseMotion", "InputEventJoypadMotion"] [linked_properties] diff --git a/.godot/editor/script_editor_cache.cfg b/.godot/editor/script_editor_cache.cfg index 01e5057..ff2c290 100644 --- a/.godot/editor/script_editor_cache.cfg +++ b/.godot/editor/script_editor_cache.cfg @@ -7,7 +7,7 @@ state={ "folded_lines": Array[int]([]), "h_scroll_position": 84, "row": 139, -"scroll_position": 118.0, +"scroll_position": 0.0, "selection": false, "syntax_highlighter": "GDScript" } @@ -18,10 +18,10 @@ state={ "bookmarks": PackedInt32Array(), "breakpoints": PackedInt32Array(), "column": 1, -"folded_lines": Array[int]([]), +"folded_lines": Array[int]([135, 175]), "h_scroll_position": 0, -"row": 146, -"scroll_position": 127.0, +"row": 167, +"scroll_position": 156.0, "selection": false, "syntax_highlighter": "GDScript" } diff --git a/.godot/editor/world.tscn-editstate-0271e18ecf37a36b455ad0b215994549.cfg b/.godot/editor/world.tscn-editstate-0271e18ecf37a36b455ad0b215994549.cfg index 99941c9..d2e535e 100644 --- a/.godot/editor/world.tscn-editstate-0271e18ecf37a36b455ad0b215994549.cfg +++ b/.godot/editor/world.tscn-editstate-0271e18ecf37a36b455ad0b215994549.cfg @@ -8,7 +8,7 @@ Anim={ "grid_snap_active": false, "grid_step": Vector2(8, 8), "grid_visibility": 1, -"ofs": Vector2(177.844, 235.53), +"ofs": Vector2(115.061, 114.061), "primary_grid_steps": 8, "show_edit_locks": true, "show_guides": true, @@ -32,7 +32,7 @@ Anim={ "snap_rotation_step": 0.261799, "snap_scale": false, "snap_scale_step": 0.1, -"zoom": 2.37841 +"zoom": 1.41421 } 3D={ "fov": 70.01, @@ -173,4 +173,4 @@ Anim={ "zfar": 4000.01, "znear": 0.05 } -selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17638/@Control@697/@Panel@698/@VBoxContainer@706/@HSplitContainer@709/@HSplitContainer@717/@HSplitContainer@725/@VBoxContainer@726/@VSplitContainer@728/@VSplitContainer@754/@VBoxContainer@755/@PanelContainer@800/MainScreen/@CanvasItemEditor@10090/@VSplitContainer@9915/@HSplitContainer@9917/@HSplitContainer@9919/@Control@9920/@SubViewportContainer@9921/@SubViewport@9922/World/CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/VSyncBox")]) +selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17638/@Control@697/@Panel@698/@VBoxContainer@706/@HSplitContainer@709/@HSplitContainer@717/@HSplitContainer@725/@VBoxContainer@726/@VSplitContainer@728/@VSplitContainer@754/@VBoxContainer@755/@PanelContainer@800/MainScreen/@CanvasItemEditor@10090/@VSplitContainer@9915/@HSplitContainer@9917/@HSplitContainer@9919/@Control@9920/@SubViewportContainer@9921/@SubViewport@9922/World/CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/Reset")]) diff --git a/.godot/editor/world.tscn-folding-0271e18ecf37a36b455ad0b215994549.cfg b/.godot/editor/world.tscn-folding-0271e18ecf37a36b455ad0b215994549.cfg index c83adbc..01a8fa1 100644 --- a/.godot/editor/world.tscn-folding-0271e18ecf37a36b455ad0b215994549.cfg +++ b/.godot/editor/world.tscn-folding-0271e18ecf37a36b455ad0b215994549.cfg @@ -1,5 +1,5 @@ [folding] -node_unfolds=[NodePath("environment"), PackedStringArray("Transform"), NodePath("DirectionalLight3D"), PackedStringArray("Shadow", "Light"), NodePath("CanvasLayer"), PackedStringArray("Layer", "Follow Viewport", "Transform"), NodePath("CanvasLayer/MainMenu"), PackedStringArray("Theme Overrides", "Theme Overrides/styles"), NodePath("CanvasLayer/MainMenu/MarginContainer"), PackedStringArray("Theme Overrides", "Theme Overrides/constants"), NodePath("CanvasLayer/MainMenu/MarginContainer/VBoxContainer"), PackedStringArray("Theme Overrides", "Theme Overrides/constants"), NodePath("CanvasLayer/HUD"), PackedStringArray("Mouse"), NodePath("CanvasLayer/HUD/TextureRect"), PackedStringArray("Layout", "Layout/Transform"), NodePath("CanvasLayer/HUD/HealthBar"), PackedStringArray("Theme Overrides", "Theme Overrides/styles", "theme_override_styles/fill", "theme_override_styles/background"), NodePath("MultiplayerSpawner"), PackedStringArray("_spawnable_scene_count_array")] +node_unfolds=[NodePath("environment"), PackedStringArray("Transform"), NodePath("DirectionalLight3D"), PackedStringArray("Shadow", "Light"), NodePath("CanvasLayer"), PackedStringArray("Layer", "Follow Viewport", "Transform"), NodePath("CanvasLayer/MainMenu"), PackedStringArray("Theme Overrides", "Theme Overrides/styles"), NodePath("CanvasLayer/MainMenu/MarginContainer"), PackedStringArray("Theme Overrides", "Theme Overrides/constants"), NodePath("CanvasLayer/MainMenu/MarginContainer/VBoxContainer"), PackedStringArray("Theme Overrides", "Theme Overrides/constants"), NodePath("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/Reset"), PackedStringArray("Text Behavior", "Theme Overrides", "Theme Overrides/font_sizes"), NodePath("CanvasLayer/HUD"), PackedStringArray("Mouse"), NodePath("CanvasLayer/HUD/TextureRect"), PackedStringArray("Layout", "Layout/Transform"), NodePath("CanvasLayer/HUD/HealthBar"), PackedStringArray("Theme Overrides", "Theme Overrides/styles", "theme_override_styles/fill", "theme_override_styles/background"), NodePath("MultiplayerSpawner"), PackedStringArray("_spawnable_scene_count_array")] resource_unfolds=["res://Scenes/world.tscn::StyleBoxFlat_cdng2", PackedStringArray(), "res://Scenes/world.tscn::StyleBoxFlat_ufa2v", PackedStringArray()] -nodes_folded=[NodePath("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/Hosting"), NodePath("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/Joining"), NodePath("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/BaseMenu"), NodePath("CanvasLayer/HUD"), NodePath("CanvasLayer/PauseMenu")] +nodes_folded=[NodePath("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/Hosting"), NodePath("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/Joining"), NodePath("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/BaseMenu"), NodePath("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu"), NodePath("CanvasLayer/HUD"), NodePath("CanvasLayer/PauseMenu")] diff --git a/Saves/options.res b/Saves/options.res new file mode 100644 index 0000000..a15b6d4 --- /dev/null +++ b/Saves/options.res @@ -0,0 +1 @@ +{"fov":75,"master_volume":100,"music_volume":100,"sensitivity":75,"soundFX_volume":100,"vsync":true} diff --git a/Scenes/world.tscn b/Scenes/world.tscn index b528d6e..4cf2a4b 100644 --- a/Scenes/world.tscn +++ b/Scenes/world.tscn @@ -140,7 +140,6 @@ horizontal_alignment = 1 vertical_alignment = 1 [node name="BaseMenu" type="Control" parent="CanvasLayer/MainMenu/MarginContainer/VBoxContainer"] -visible = false layout_mode = 2 [node name="Label2" type="Label" parent="CanvasLayer/MainMenu/MarginContainer/VBoxContainer/BaseMenu"] @@ -269,6 +268,7 @@ grow_vertical = 0 text = "Options" [node name="OptionMenu" type="Control" parent="CanvasLayer/MainMenu/MarginContainer/VBoxContainer"] +visible = false layout_mode = 2 [node name="OptionsTitle" type="Label" parent="CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu"] @@ -507,7 +507,6 @@ offset_right = 84.0 offset_bottom = 223.0 grow_horizontal = 2 grow_vertical = 0 -disabled = true text = "Apply" [node name="VSyncBox" type="CheckBox" parent="CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu"] @@ -519,6 +518,7 @@ offset_bottom = 189.0 button_pressed = true [node name="VSyncLabel" type="Label" parent="CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu"] +layout_mode = 0 offset_left = 7.0 offset_top = 164.0 offset_right = 129.0 @@ -526,6 +526,13 @@ offset_bottom = 190.0 text = "VSync:" horizontal_alignment = 2 +[node name="Reset" type="Button" parent="CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu"] +layout_mode = 1 +offset_right = 83.0 +offset_bottom = 21.0 +theme_override_font_sizes/font_size = 9 +text = "Reset to Defaults" + [node name="HUD" type="Control" parent="CanvasLayer"] visible = false layout_mode = 3 @@ -630,8 +637,16 @@ spawn_path = NodePath("..") [connection signal="pressed" from="CanvasLayer/MainMenu/MarginContainer/VBoxContainer/BaseMenu/Join" to="." method="_on_join_pressed"] [connection signal="pressed" from="CanvasLayer/MainMenu/MarginContainer/VBoxContainer/BaseMenu/Host" to="." method="_on_host_pressed"] [connection signal="pressed" from="CanvasLayer/MainMenu/MarginContainer/VBoxContainer/BaseMenu/Button" to="." method="quit"] +[connection signal="pressed" from="CanvasLayer/MainMenu/MarginContainer/VBoxContainer/BaseMenu/Options" to="." method="_on_options_pressed"] +[connection signal="value_changed" from="CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/FOV" to="." method="_on_fov_value_changed"] +[connection signal="value_changed" from="CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/Sensitivity" to="." method="_on_sensitivity_value_changed"] +[connection signal="value_changed" from="CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/MasterVolume" to="." method="_on_master_volume_value_changed"] +[connection signal="value_changed" from="CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/MusicVolume" to="." method="_on_music_volume_value_changed"] +[connection signal="value_changed" from="CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/SoundFXVolume" to="." method="_on_sound_fx_volume_value_changed"] [connection signal="pressed" from="CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/Cancel" to="." method="_on_cancel_pressed"] +[connection signal="pressed" from="CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/Apply" to="." method="_on_apply_pressed"] [connection signal="pressed" from="CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/VSyncBox" to="." method="_on_v_sync_box_pressed"] +[connection signal="pressed" from="CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/Reset" to="." method="initSave"] [connection signal="pressed" from="CanvasLayer/PauseMenu/MarginContainer/VBoxContainer/Resume" to="." method="pause"] [connection signal="pressed" from="CanvasLayer/PauseMenu/MarginContainer/VBoxContainer/MainMenu" to="." method="_on_main_menu_pressed"] [connection signal="pressed" from="CanvasLayer/PauseMenu/MarginContainer/VBoxContainer/Quit" to="." method="quit"] diff --git a/Scripts/world.gd b/Scripts/world.gd index 4a546d3..d5f3931 100644 --- a/Scripts/world.gd +++ b/Scripts/world.gd @@ -22,7 +22,7 @@ var paused: bool = false var ingame: bool = false var chimkin var local_peer_id -var vsync: bool = true +var settings @export var spawnpoint: Vector3 = Vector3(0, 6.376, 0) @@ -31,6 +31,9 @@ func _unhandled_input(event): if ingame and Input.is_action_just_pressed("quit"): pause() +func _ready(): + loadSave() + func _on_join_pressed(): baseMenu.hide() joinMenu.show() @@ -116,7 +119,8 @@ func pause(): func _on_cancel_pressed(): optionMenu.hide() - mainMenu.show() + baseMenu.show() + updateOptions() func playerDisconnect(peer_id): mainMenu.show() @@ -129,24 +133,78 @@ func _on_main_menu_pressed(): var player = get_node_or_null(str(local_peer_id)) enet_peer.close() -func _on_v_sync_box_pressed(): - if vsync: - DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_DISABLED) - else: - DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_ENABLED) - vsync = !vsync - func save(): var save_game = FileAccess.open(SAVE_FILE, FileAccess.WRITE) - save_game.store_line(JSON.stringify({"vsync": vsync})) + save_game.store_line(JSON.stringify(settings)) + save_game.close() func loadSave(): if not FileAccess.file_exists(SAVE_FILE): initSave() - var save_game = FileAccess.open(SAVE_FILE, FileAccess.READ) - + var save_game = FileAccess.open(SAVE_FILE, FileAccess.WRITE) + save_game.store_line(JSON.stringify(settings)) + save_game.close() + else: + var save_game = FileAccess.open(SAVE_FILE, FileAccess.READ) + var json = JSON.new() + json.parse(save_game.get_line()) + settings = json.get_data() + save_game.close() + if settings["vsync"]: + DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_DISABLED) + else: + DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_ENABLED) + updateOptions() + +func updateOptions(): + get_node("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/FOV").value = settings["fov"] + get_node("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/Sensitivity").value = settings["sensitivity"] + get_node("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/MasterVolume").value = settings["master_volume"] + get_node("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/MusicVolume").value = settings["music_volume"] + get_node("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/SoundFXVolume").value = settings["soundFX_volume"] + get_node("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/VSyncBox").button_pressed = settings["vsync"] func initSave(): - var save_game = FileAccess.open(SAVE_FILE, FileAccess.WRITE) - save_game.store_line(JSON.stringify({"vsync": true})) + settings = {"fov": 75, + "sensitivity": 75, + "master_volume": 100, + "music_volume": 100, + "soundFX_volume": 100, + "vsync": true} + updateOptions() +func _on_apply_pressed(): + settings = { + "fov": get_node("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/FOV").value, + "sensitivity": get_node("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/Sensitivity").value, + "master_volume": get_node("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/MasterVolume").value, + "music_volume": get_node("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/MusicVolume").value, + "soundFX_volume": get_node("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/SoundFXVolume").value, + "vsync": get_node("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/VSyncBox").button_pressed + } + save() + if settings["vsync"]: + DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_DISABLED) + else: + DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_ENABLED) + baseMenu.show() + optionMenu.hide() + +func _on_options_pressed(): + optionMenu.show() + baseMenu.hide() + +func _on_fov_value_changed(value): + get_node("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/FOVNum").text = str(value) + +func _on_sensitivity_value_changed(value): + get_node("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/SensitivityNum").text = str(value) + +func _on_master_volume_value_changed(value): + get_node("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/MasterVolumeValue").text = str(value) + +func _on_music_volume_value_changed(value): + get_node("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/MusicVolumeNum").text = str(value) + +func _on_sound_fx_volume_value_changed(value): + get_node("CanvasLayer/MainMenu/MarginContainer/VBoxContainer/OptionMenu/SoundFXVolumeValue").text = str(value)