refactor
This commit is contained in:
@@ -1,21 +0,0 @@
|
||||
extends CanvasLayer
|
||||
|
||||
@onready var label: Label = $Center/VBox/Label
|
||||
@onready var button: Button = $Center/VBox/Button
|
||||
|
||||
func _ready() -> void:
|
||||
visible = false
|
||||
button.pressed.connect(_on_button)
|
||||
|
||||
func show_overlay(wave: int) -> void:
|
||||
label.text = "GAME OVER — Welle %d erreicht" % wave
|
||||
visible = true
|
||||
|
||||
func _on_button() -> void:
|
||||
GameState.reset()
|
||||
PlayerData.reset_run()
|
||||
EnemyData.entities.clear()
|
||||
BossData.entities.clear()
|
||||
PortalData.entities.clear()
|
||||
TavernData.entities.clear()
|
||||
get_tree().change_scene_to_file("res://scenes/menu/main_menu.tscn")
|
||||
@@ -1 +0,0 @@
|
||||
uid://dm00anoh5wtyu
|
||||
@@ -1,41 +0,0 @@
|
||||
[gd_scene format=3]
|
||||
|
||||
[ext_resource type="Script" path="res://scenes/menu/game_over_overlay.gd" id="1"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_button"]
|
||||
bg_color = Color(0.2, 0.2, 0.25, 0.9)
|
||||
border_width_bottom = 2
|
||||
border_width_left = 2
|
||||
border_width_right = 2
|
||||
border_width_top = 2
|
||||
border_color = Color(0.7, 0.7, 0.7, 1)
|
||||
|
||||
[node name="GameOverOverlay" type="CanvasLayer"]
|
||||
layer = 10
|
||||
script = ExtResource("1")
|
||||
|
||||
[node name="Background" type="ColorRect" parent="."]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
color = Color(0, 0, 0, 0.75)
|
||||
|
||||
[node name="Center" type="CenterContainer" parent="."]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
|
||||
[node name="VBox" type="VBoxContainer" parent="Center"]
|
||||
custom_minimum_size = Vector2(400, 0)
|
||||
theme_override_constants/separation = 30
|
||||
|
||||
[node name="Label" type="Label" parent="Center/VBox"]
|
||||
text = "GAME OVER"
|
||||
horizontal_alignment = 1
|
||||
theme_override_font_sizes/font_size = 48
|
||||
theme_override_colors/font_color = Color(1, 0.3, 0.3, 1)
|
||||
|
||||
[node name="Button" type="Button" parent="Center/VBox"]
|
||||
custom_minimum_size = Vector2(0, 48)
|
||||
text = "Zurück zum Menü"
|
||||
theme_override_styles/normal = SubResource("StyleBoxFlat_button")
|
||||
55
scenes/menu/lobby.gd
Normal file
55
scenes/menu/lobby.gd
Normal file
@@ -0,0 +1,55 @@
|
||||
extends Control
|
||||
|
||||
@onready var player_list: ItemList = %PlayerList
|
||||
@onready var status_label: Label = %StatusLabel
|
||||
@onready var start_button: Button = %StartButton
|
||||
|
||||
func _ready() -> void:
|
||||
Net.peer_connected.connect(_refresh)
|
||||
Net.peer_disconnected.connect(_refresh)
|
||||
Net.server_disconnected.connect(_on_disconnect)
|
||||
start_button.visible = Net.is_host()
|
||||
if Net.is_host():
|
||||
status_label.text = "Hosting on port %d — press Start when ready" % Net.DEFAULT_PORT
|
||||
else:
|
||||
status_label.text = "Joined — waiting for host to start"
|
||||
_refresh(0)
|
||||
|
||||
func _refresh(_id: int) -> void:
|
||||
player_list.clear()
|
||||
var ids: Array = []
|
||||
if multiplayer.multiplayer_peer == null:
|
||||
ids.append(1)
|
||||
else:
|
||||
ids.append(multiplayer.get_unique_id())
|
||||
for p in multiplayer.get_peers():
|
||||
if not p in ids:
|
||||
ids.append(p)
|
||||
ids.sort()
|
||||
for id in ids:
|
||||
var n: String = Net.player_names.get(id, "Player %d" % id)
|
||||
player_list.add_item("[%d] %s" % [id, n])
|
||||
|
||||
func _on_start_pressed() -> void:
|
||||
if not Net.is_host():
|
||||
return
|
||||
_start_world.rpc()
|
||||
|
||||
@rpc("authority", "call_local", "reliable")
|
||||
func _start_world() -> void:
|
||||
GameState.change_scene(GameState.SCENE_WORLD)
|
||||
|
||||
var _leaving: bool = false
|
||||
|
||||
func _on_back_pressed() -> void:
|
||||
if _leaving:
|
||||
return
|
||||
_leaving = true
|
||||
Net.disconnect_net()
|
||||
GameState.change_scene(GameState.SCENE_MAIN_MENU)
|
||||
|
||||
func _on_disconnect() -> void:
|
||||
if _leaving:
|
||||
return
|
||||
_leaving = true
|
||||
GameState.change_scene(GameState.SCENE_MAIN_MENU)
|
||||
1
scenes/menu/lobby.gd.uid
Normal file
1
scenes/menu/lobby.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://d3gurtlgr2a6o
|
||||
58
scenes/menu/lobby.tscn
Normal file
58
scenes/menu/lobby.tscn
Normal file
@@ -0,0 +1,58 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://b0lobby0001"]
|
||||
|
||||
[ext_resource type="Script" path="res://scenes/menu/lobby.gd" id="1"]
|
||||
|
||||
[node name="Lobby" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
script = ExtResource("1")
|
||||
|
||||
[node name="Background" type="ColorRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
color = Color(0.08, 0.08, 0.12, 1)
|
||||
|
||||
[node name="Center" type="CenterContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
|
||||
[node name="VBox" type="VBoxContainer" parent="Center"]
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(420, 0)
|
||||
|
||||
[node name="Title" type="Label" parent="Center/VBox"]
|
||||
layout_mode = 2
|
||||
text = "Lobby"
|
||||
horizontal_alignment = 1
|
||||
theme_override_font_sizes/font_size = 36
|
||||
|
||||
[node name="StatusLabel" type="Label" parent="Center/VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
horizontal_alignment = 1
|
||||
text = ""
|
||||
|
||||
[node name="PlayerList" type="ItemList" parent="Center/VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(0, 180)
|
||||
|
||||
[node name="StartButton" type="Button" parent="Center/VBox"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "Start"
|
||||
custom_minimum_size = Vector2(0, 40)
|
||||
|
||||
[node name="BackButton" type="Button" parent="Center/VBox"]
|
||||
layout_mode = 2
|
||||
text = "Back"
|
||||
custom_minimum_size = Vector2(0, 40)
|
||||
|
||||
[connection signal="pressed" from="Center/VBox/StartButton" to="." method="_on_start_pressed"]
|
||||
[connection signal="pressed" from="Center/VBox/BackButton" to="." method="_on_back_pressed"]
|
||||
@@ -1,32 +1,47 @@
|
||||
extends CanvasLayer
|
||||
extends Control
|
||||
|
||||
@onready var singleplayer_button: Button = $Center/VBox/SingleplayerButton
|
||||
@onready var host_button: Button = $Center/VBox/HostButton
|
||||
@onready var join_button: Button = $Center/VBox/JoinButton
|
||||
@onready var quit_button: Button = $Center/VBox/QuitButton
|
||||
@onready var name_input: LineEdit = %NameInput
|
||||
@onready var ip_input: LineEdit = %IpInput
|
||||
@onready var status_label: Label = %StatusLabel
|
||||
|
||||
func _ready() -> void:
|
||||
singleplayer_button.pressed.connect(_on_singleplayer)
|
||||
host_button.pressed.connect(_on_host)
|
||||
join_button.pressed.connect(_on_join)
|
||||
quit_button.pressed.connect(_on_quit)
|
||||
host_button.disabled = true
|
||||
join_button.disabled = true
|
||||
name_input.text = Net.local_name
|
||||
Net.connected_to_server.connect(_on_connected)
|
||||
Net.connection_failed.connect(_on_failed)
|
||||
|
||||
func _on_singleplayer() -> void:
|
||||
GameState.reset()
|
||||
PlayerData.reset_run()
|
||||
EnemyData.entities.clear()
|
||||
BossData.entities.clear()
|
||||
PortalData.entities.clear()
|
||||
TavernData.entities.clear()
|
||||
get_tree().change_scene_to_file("res://scenes/world/world.tscn")
|
||||
func _on_singleplayer_pressed() -> void:
|
||||
Net.local_name = name_input.text.strip_edges() if name_input.text.strip_edges() != "" else "Player"
|
||||
GameState.reset_run()
|
||||
if Net.host_singleplayer():
|
||||
GameState.change_scene(GameState.SCENE_WORLD)
|
||||
|
||||
func _on_host() -> void:
|
||||
pass
|
||||
func _on_host_pressed() -> void:
|
||||
Net.local_name = name_input.text.strip_edges() if name_input.text.strip_edges() != "" else "Host"
|
||||
GameState.reset_run()
|
||||
if Net.host():
|
||||
status_label.text = "Hosting on port %d" % Net.DEFAULT_PORT
|
||||
GameState.change_scene(GameState.SCENE_LOBBY)
|
||||
else:
|
||||
status_label.text = "Hosting failed."
|
||||
|
||||
func _on_join() -> void:
|
||||
pass
|
||||
func _on_join_pressed() -> void:
|
||||
Net.local_name = name_input.text.strip_edges() if name_input.text.strip_edges() != "" else "Client"
|
||||
var addr := ip_input.text.strip_edges()
|
||||
if addr == "":
|
||||
addr = "127.0.0.1"
|
||||
status_label.text = "Connecting to %s..." % addr
|
||||
if not Net.join(addr):
|
||||
status_label.text = "Join failed."
|
||||
|
||||
func _on_quit() -> void:
|
||||
func _on_options_pressed() -> void:
|
||||
GameState.change_scene(GameState.SCENE_OPTIONS)
|
||||
|
||||
func _on_quit_pressed() -> void:
|
||||
get_tree().quit()
|
||||
|
||||
func _on_connected() -> void:
|
||||
status_label.text = "Connected."
|
||||
GameState.change_scene(GameState.SCENE_LOBBY)
|
||||
|
||||
func _on_failed() -> void:
|
||||
status_label.text = "Connection failed."
|
||||
|
||||
@@ -1 +1 @@
|
||||
uid://b4m6byh4k2mg7
|
||||
uid://d0k5a5qreg1uu
|
||||
|
||||
@@ -1,57 +1,115 @@
|
||||
[gd_scene format=3]
|
||||
[gd_scene format=3 uid="uid://bm5gsrlveyvnk"]
|
||||
|
||||
[ext_resource type="Script" path="res://scenes/menu/main_menu.gd" id="1"]
|
||||
[ext_resource type="Script" uid="uid://d0k5a5qreg1uu" path="res://scenes/menu/main_menu.gd" id="1"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_button"]
|
||||
bg_color = Color(0.2, 0.2, 0.25, 0.9)
|
||||
border_width_bottom = 2
|
||||
border_width_left = 2
|
||||
border_width_right = 2
|
||||
border_width_top = 2
|
||||
border_color = Color(0.7, 0.7, 0.7, 1)
|
||||
|
||||
[node name="MainMenu" type="CanvasLayer"]
|
||||
[node name="MainMenu" type="Control" unique_id=282057399]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1")
|
||||
|
||||
[node name="Background" type="ColorRect" parent="."]
|
||||
[node name="Background" type="ColorRect" parent="." unique_id=1892952438]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
color = Color(0.08, 0.08, 0.12, 1)
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0.1, 0.1, 0.15, 1)
|
||||
|
||||
[node name="Center" type="CenterContainer" parent="."]
|
||||
[node name="Center" type="CenterContainer" parent="." unique_id=303933157]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="VBox" type="VBoxContainer" parent="Center"]
|
||||
custom_minimum_size = Vector2(320, 0)
|
||||
theme_override_constants/separation = 20
|
||||
[node name="VBox" type="VBoxContainer" parent="Center" unique_id=576802246]
|
||||
custom_minimum_size = Vector2(420, 0)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Title" type="Label" parent="Center/VBox"]
|
||||
[node name="Title" type="Label" parent="Center/VBox" unique_id=1058778255]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 56
|
||||
text = "MMO"
|
||||
horizontal_alignment = 1
|
||||
theme_override_font_sizes/font_size = 64
|
||||
|
||||
[node name="Spacer" type="Control" parent="Center/VBox"]
|
||||
[node name="Spacer1" type="Control" parent="Center/VBox" unique_id=707057681]
|
||||
custom_minimum_size = Vector2(0, 24)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="NameRow" type="HBoxContainer" parent="Center/VBox" unique_id=1693567332]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="NameLabel" type="Label" parent="Center/VBox/NameRow" unique_id=1012504876]
|
||||
custom_minimum_size = Vector2(80, 0)
|
||||
layout_mode = 2
|
||||
text = "Name:"
|
||||
|
||||
[node name="NameInput" type="LineEdit" parent="Center/VBox/NameRow" unique_id=318387796]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "Player"
|
||||
|
||||
[node name="IpRow" type="HBoxContainer" parent="Center/VBox" unique_id=674693362]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="IpLabel" type="Label" parent="Center/VBox/IpRow" unique_id=222908556]
|
||||
custom_minimum_size = Vector2(80, 0)
|
||||
layout_mode = 2
|
||||
text = "Server IP:"
|
||||
|
||||
[node name="IpInput" type="LineEdit" parent="Center/VBox/IpRow" unique_id=99390081]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
placeholder_text = "127.0.0.1"
|
||||
|
||||
[node name="Spacer2" type="Control" parent="Center/VBox" unique_id=979762154]
|
||||
custom_minimum_size = Vector2(0, 16)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Singleplayer" type="Button" parent="Center/VBox" unique_id=156537849]
|
||||
custom_minimum_size = Vector2(0, 40)
|
||||
|
||||
[node name="SingleplayerButton" type="Button" parent="Center/VBox"]
|
||||
custom_minimum_size = Vector2(0, 48)
|
||||
layout_mode = 2
|
||||
text = "Singleplayer"
|
||||
theme_override_styles/normal = SubResource("StyleBoxFlat_button")
|
||||
|
||||
[node name="HostButton" type="Button" parent="Center/VBox"]
|
||||
custom_minimum_size = Vector2(0, 48)
|
||||
text = "Host (bald)"
|
||||
theme_override_styles/normal = SubResource("StyleBoxFlat_button")
|
||||
[node name="Host" type="Button" parent="Center/VBox" unique_id=1117468477]
|
||||
custom_minimum_size = Vector2(0, 40)
|
||||
layout_mode = 2
|
||||
text = "Host"
|
||||
|
||||
[node name="JoinButton" type="Button" parent="Center/VBox"]
|
||||
custom_minimum_size = Vector2(0, 48)
|
||||
text = "Join (bald)"
|
||||
theme_override_styles/normal = SubResource("StyleBoxFlat_button")
|
||||
[node name="Join" type="Button" parent="Center/VBox" unique_id=1669660415]
|
||||
custom_minimum_size = Vector2(0, 40)
|
||||
layout_mode = 2
|
||||
text = "Join"
|
||||
|
||||
[node name="QuitButton" type="Button" parent="Center/VBox"]
|
||||
custom_minimum_size = Vector2(0, 48)
|
||||
[node name="Options" type="Button" parent="Center/VBox" unique_id=1739276223]
|
||||
custom_minimum_size = Vector2(0, 40)
|
||||
layout_mode = 2
|
||||
text = "Options"
|
||||
|
||||
[node name="Quit" type="Button" parent="Center/VBox" unique_id=182300116]
|
||||
custom_minimum_size = Vector2(0, 40)
|
||||
layout_mode = 2
|
||||
text = "Quit"
|
||||
theme_override_styles/normal = SubResource("StyleBoxFlat_button")
|
||||
|
||||
[node name="Spacer3" type="Control" parent="Center/VBox" unique_id=1580062158]
|
||||
custom_minimum_size = Vector2(0, 16)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="StatusLabel" type="Label" parent="Center/VBox" unique_id=643981255]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
horizontal_alignment = 1
|
||||
|
||||
[connection signal="pressed" from="Center/VBox/Singleplayer" to="." method="_on_singleplayer_pressed"]
|
||||
[connection signal="pressed" from="Center/VBox/Host" to="." method="_on_host_pressed"]
|
||||
[connection signal="pressed" from="Center/VBox/Join" to="." method="_on_join_pressed"]
|
||||
[connection signal="pressed" from="Center/VBox/Options" to="." method="_on_options_pressed"]
|
||||
[connection signal="pressed" from="Center/VBox/Quit" to="." method="_on_quit_pressed"]
|
||||
|
||||
49
scenes/menu/options_menu.gd
Normal file
49
scenes/menu/options_menu.gd
Normal file
@@ -0,0 +1,49 @@
|
||||
extends Control
|
||||
|
||||
const SETTINGS_PATH: String = "user://settings.cfg"
|
||||
|
||||
@onready var master: HSlider = %MasterSlider
|
||||
@onready var music: HSlider = %MusicSlider
|
||||
@onready var sfx: HSlider = %SfxSlider
|
||||
@onready var sens: HSlider = %SensSlider
|
||||
|
||||
func _ready() -> void:
|
||||
load_settings()
|
||||
master.value_changed.connect(_on_master_changed)
|
||||
music.value_changed.connect(_on_music_changed)
|
||||
sfx.value_changed.connect(_on_sfx_changed)
|
||||
|
||||
func load_settings() -> void:
|
||||
var cfg := ConfigFile.new()
|
||||
if cfg.load(SETTINGS_PATH) == OK:
|
||||
master.value = cfg.get_value("audio", "master", 1.0)
|
||||
music.value = cfg.get_value("audio", "music", 1.0)
|
||||
sfx.value = cfg.get_value("audio", "sfx", 1.0)
|
||||
sens.value = cfg.get_value("input", "sens", 1.0)
|
||||
_apply_audio()
|
||||
|
||||
func save_settings() -> void:
|
||||
var cfg := ConfigFile.new()
|
||||
cfg.set_value("audio", "master", master.value)
|
||||
cfg.set_value("audio", "music", music.value)
|
||||
cfg.set_value("audio", "sfx", sfx.value)
|
||||
cfg.set_value("input", "sens", sens.value)
|
||||
cfg.save(SETTINGS_PATH)
|
||||
|
||||
func _on_master_changed(_v: float) -> void:
|
||||
_apply_audio()
|
||||
save_settings()
|
||||
|
||||
func _on_music_changed(_v: float) -> void:
|
||||
_apply_audio()
|
||||
save_settings()
|
||||
|
||||
func _on_sfx_changed(_v: float) -> void:
|
||||
_apply_audio()
|
||||
save_settings()
|
||||
|
||||
func _apply_audio() -> void:
|
||||
AudioServer.set_bus_volume_db(0, linear_to_db(max(0.001, master.value)))
|
||||
|
||||
func _on_back_pressed() -> void:
|
||||
GameState.change_scene(GameState.SCENE_MAIN_MENU)
|
||||
1
scenes/menu/options_menu.gd.uid
Normal file
1
scenes/menu/options_menu.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://fpukylp3yy1c
|
||||
108
scenes/menu/options_menu.tscn
Normal file
108
scenes/menu/options_menu.tscn
Normal file
@@ -0,0 +1,108 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://b0options0001"]
|
||||
|
||||
[ext_resource type="Script" path="res://scenes/menu/options_menu.gd" id="1"]
|
||||
|
||||
[node name="OptionsMenu" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
script = ExtResource("1")
|
||||
|
||||
[node name="Background" type="ColorRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
color = Color(0.1, 0.1, 0.15, 1)
|
||||
|
||||
[node name="Center" type="CenterContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
|
||||
[node name="VBox" type="VBoxContainer" parent="Center"]
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(420, 0)
|
||||
|
||||
[node name="Title" type="Label" parent="Center/VBox"]
|
||||
layout_mode = 2
|
||||
text = "Options"
|
||||
horizontal_alignment = 1
|
||||
theme_override_font_sizes/font_size = 36
|
||||
|
||||
[node name="MasterRow" type="HBoxContainer" parent="Center/VBox"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="MasterLabel" type="Label" parent="Center/VBox/MasterRow"]
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(110, 0)
|
||||
text = "Master"
|
||||
|
||||
[node name="MasterSlider" type="HSlider" parent="Center/VBox/MasterRow"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
min_value = 0.0
|
||||
max_value = 1.0
|
||||
step = 0.05
|
||||
value = 1.0
|
||||
|
||||
[node name="MusicRow" type="HBoxContainer" parent="Center/VBox"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="MusicLabel" type="Label" parent="Center/VBox/MusicRow"]
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(110, 0)
|
||||
text = "Music"
|
||||
|
||||
[node name="MusicSlider" type="HSlider" parent="Center/VBox/MusicRow"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
min_value = 0.0
|
||||
max_value = 1.0
|
||||
step = 0.05
|
||||
value = 1.0
|
||||
|
||||
[node name="SfxRow" type="HBoxContainer" parent="Center/VBox"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="SfxLabel" type="Label" parent="Center/VBox/SfxRow"]
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(110, 0)
|
||||
text = "SFX"
|
||||
|
||||
[node name="SfxSlider" type="HSlider" parent="Center/VBox/SfxRow"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
min_value = 0.0
|
||||
max_value = 1.0
|
||||
step = 0.05
|
||||
value = 1.0
|
||||
|
||||
[node name="SensRow" type="HBoxContainer" parent="Center/VBox"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="SensLabel" type="Label" parent="Center/VBox/SensRow"]
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(110, 0)
|
||||
text = "Mouse Sens"
|
||||
|
||||
[node name="SensSlider" type="HSlider" parent="Center/VBox/SensRow"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
min_value = 0.1
|
||||
max_value = 3.0
|
||||
step = 0.1
|
||||
value = 1.0
|
||||
|
||||
[node name="Back" type="Button" parent="Center/VBox"]
|
||||
layout_mode = 2
|
||||
text = "Back"
|
||||
custom_minimum_size = Vector2(0, 40)
|
||||
|
||||
[connection signal="pressed" from="Center/VBox/Back" to="." method="_on_back_pressed"]
|
||||
Reference in New Issue
Block a user