diff --git a/src/Screens/MainMenu.tscn b/src/Screens/MainMenu.tscn index 15695b1..11e4970 100644 --- a/src/Screens/MainMenu.tscn +++ b/src/Screens/MainMenu.tscn @@ -66,6 +66,7 @@ margin_bottom = 84.0 focus_next = NodePath("../QuitButton") focus_previous = NodePath("../PlayButton") text = "Settings" +next_scene_path = "res://src/Screens/SettingsMenu.tscn" [node name="QuitButton" parent="MenuButtons" instance=ExtResource( 4 )] margin_top = 88.0 diff --git a/src/Screens/SettingsMenu.gd b/src/Screens/SettingsMenu.gd index 129a123..3b67e95 100644 --- a/src/Screens/SettingsMenu.gd +++ b/src/Screens/SettingsMenu.gd @@ -4,6 +4,11 @@ extends Control # TODO: Add Audio settings (Master Volume, since only 2 SFX) # TODO: Make them presist between launchs +onready var fullscreen: CheckButton = $MarginContainer/GameSettings/FullScreenToggle +onready var v_sync: CheckButton = $MarginContainer/GameSettings/VSyncCheckToggle +onready var paticle_effects: CheckButton = $MarginContainer/GameSettings/ParticleEffectsToggle +onready var game_volume_slider: HSlider = $MarginContainer/GameSettings/VolumeSlider/VolumeSliderBar +onready var game_volume_label: Label = $MarginContainer/GameSettings/VolumeSlider/VolumeSliderLabel func _ready() -> void: - pass + fullscreen.grab_focus() diff --git a/src/Screens/SettingsMenu.tscn b/src/Screens/SettingsMenu.tscn index 3675e7e..0567a47 100644 --- a/src/Screens/SettingsMenu.tscn +++ b/src/Screens/SettingsMenu.tscn @@ -1,9 +1,11 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=10 format=2] [ext_resource path="res://assets/Background.png" type="Texture" id=1] [ext_resource path="res://assets-raw/BBB_Simulator_Black.otf" type="DynamicFontData" id=2] [ext_resource path="res://src/UI/Title.tscn" type="PackedScene" id=3] [ext_resource path="res://src/Screens/SettingsMenu.gd" type="Script" id=4] +[ext_resource path="res://src/UI/ChangeScene.tscn" type="PackedScene" id=5] +[ext_resource path="res://assets/ui_theme.tres" type="Theme" id=6] [sub_resource type="DynamicFont" id=1] font_data = ExtResource( 2 ) @@ -11,10 +13,17 @@ font_data = ExtResource( 2 ) [sub_resource type="Theme" id=2] default_font = SubResource( 1 ) +[sub_resource type="DynamicFont" id=3] +size = 12 +font_data = ExtResource( 2 ) + [node name="SettingsMenu" type="Control"] anchor_right = 1.0 anchor_bottom = 1.0 script = ExtResource( 4 ) +__meta__ = { +"_edit_vertical_guides_": [ 640.0 ] +} [node name="Background" type="TextureRect" parent="."] modulate = Color( 0, 0, 0, 1 ) @@ -27,6 +36,105 @@ texture = ExtResource( 1 ) anchor_left = 0.5 anchor_right = 0.5 margin_left = -150.5 +margin_top = 112.0 margin_right = 150.5 -margin_bottom = 67.0 +margin_bottom = 179.0 text = "Settings" + +[node name="MarginContainer" type="MarginContainer" parent="."] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -150.0 +margin_top = -100.0 +margin_right = 150.0 +margin_bottom = 100.0 +theme = ExtResource( 6 ) + +[node name="GameSettings" type="GridContainer" parent="MarginContainer"] +margin_right = 300.0 +margin_bottom = 200.0 +columns = 2 + +[node name="FullScreenLabel" type="Label" parent="MarginContainer/GameSettings"] +margin_top = 4.0 +margin_right = 194.0 +margin_bottom = 38.0 +text = "Fullscreen:" + +[node name="FullScreenToggle" type="CheckButton" parent="MarginContainer/GameSettings"] +margin_left = 198.0 +margin_right = 274.0 +margin_bottom = 42.0 +focus_next = NodePath("../VSyncToggle") +focus_previous = NodePath("../../../BackButton") + +[node name="VSyncLabel" type="Label" parent="MarginContainer/GameSettings"] +margin_top = 50.0 +margin_right = 194.0 +margin_bottom = 84.0 +text = "V-Sync:" + +[node name="VSyncToggle" type="CheckButton" parent="MarginContainer/GameSettings"] +margin_left = 198.0 +margin_top = 46.0 +margin_right = 274.0 +margin_bottom = 88.0 +focus_next = NodePath("../ParticleEffectsToggle") +focus_previous = NodePath("../FullScreenToggle") + +[node name="ParticleEffectsLabel" type="Label" parent="MarginContainer/GameSettings"] +margin_top = 96.0 +margin_right = 194.0 +margin_bottom = 130.0 +text = "Particle Effects:" + +[node name="ParticleEffectsToggle" type="CheckButton" parent="MarginContainer/GameSettings"] +margin_left = 198.0 +margin_top = 92.0 +margin_right = 274.0 +margin_bottom = 134.0 +focus_next = NodePath("../VolumeSlider/VolumeSliderBar") +focus_previous = NodePath("../VSyncToggle") + +[node name="VolumeLabel" type="Label" parent="MarginContainer/GameSettings"] +margin_top = 140.0 +margin_right = 194.0 +margin_bottom = 174.0 +text = "Volume:" + +[node name="VolumeSlider" type="VBoxContainer" parent="MarginContainer/GameSettings"] +margin_left = 198.0 +margin_top = 138.0 +margin_right = 274.0 +margin_bottom = 176.0 + +[node name="VolumeSliderBar" type="HSlider" parent="MarginContainer/GameSettings/VolumeSlider"] +margin_right = 76.0 +margin_bottom = 16.0 +focus_next = NodePath("../../../../BackButton") +focus_previous = NodePath("../../ParticleEffectsToggle") + +[node name="VolumeSliderText" type="Label" parent="MarginContainer/GameSettings/VolumeSlider"] +margin_top = 20.0 +margin_right = 76.0 +margin_bottom = 38.0 +custom_fonts/font = SubResource( 3 ) +text = "100%" +align = 1 +valign = 2 + +[node name="BackButton" parent="." instance=ExtResource( 5 )] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -97.0 +margin_top = 144.0 +margin_right = 97.0 +margin_bottom = 184.0 +focus_next = NodePath("../MarginContainer/GameSettings/FullScreenToggle") +focus_previous = NodePath("../MarginContainer/GameSettings/VolumeSlider/VolumeSliderBar") +text = "Back" +next_scene_path = "res://src/Screens/MainMenu.tscn"