seperate ui controls from gameplay controls, scrolling controls screen

This commit is contained in:
Haze Weathers 2024-04-01 14:12:32 -04:00
parent 3c69e4d14d
commit ab094fd6ce
8 changed files with 273 additions and 71 deletions

View file

@ -118,3 +118,7 @@ func _on_SoundVol_value_changed(value: float) -> void:
func _on_LandingSound_selected(selection) -> void:
Options.landing_sound = selection == 1
func _on_DefaultControls_button_down() -> void:
Controls.default_controls()

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=12 format=2]
[gd_scene load_steps=16 format=2]
[ext_resource path="res://objects/hud/options_screen_scholar.gd" type="Script" id=1]
[ext_resource path="res://ui/theme.tres" type="Theme" id=2]
@ -9,6 +9,8 @@
[ext_resource path="res://objects/hud/labeled_slider.gd" type="Script" id=7]
[ext_resource path="res://objects/hud/set_keyboard_button.gd" type="Script" id=8]
[ext_resource path="res://objects/hud/set_gamepad_button.gd" type="Script" id=9]
[ext_resource path="res://objects/hud/scroll_follow_focus.gd" type="Script" id=10]
[ext_resource path="res://graphics/hud/levelselect_nexlevel.png" type="Texture" id=11]
[sub_resource type="ShaderMaterial" id=1]
shader = ExtResource( 4 )
@ -24,6 +26,14 @@ shader_param/ammount = Vector2( 2, 0 )
shader_param/offset = Vector2( 0, 0 )
shader_param/delay = Vector2( 4, 0 )
[sub_resource type="AtlasTexture" id=3]
atlas = ExtResource( 11 )
region = Rect2( 0, 0, 8, 8 )
[sub_resource type="AtlasTexture" id=4]
atlas = ExtResource( 11 )
region = Rect2( 8, 0, 8, 8 )
[node name="OptionsScreen" type="Control"]
anchor_right = 1.0
anchor_bottom = 1.0
@ -49,13 +59,13 @@ margin_bottom = 157.0
custom_constants/margin_right = 8
custom_constants/margin_top = 4
custom_constants/margin_left = 8
custom_constants/margin_bottom = 4
custom_constants/margin_bottom = 2
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer"]
margin_left = 8.0
margin_top = 4.0
margin_right = 226.0
margin_bottom = 150.0
margin_bottom = 152.0
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer"]
margin_right = 218.0
@ -83,8 +93,10 @@ margin_bottom = 32.0
unique_name_in_owner = true
margin_top = 36.0
margin_right = 218.0
margin_bottom = 146.0
margin_bottom = 148.0
focus_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
tabs_visible = false
[node name="Game" type="VBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs"]
@ -449,19 +461,27 @@ options = [ "off", "on" ]
[node name="Input" type="VBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs"]
anchor_right = 1.0
anchor_bottom = 1.0
focus_next = NodePath("Left/Keyboard")
focus_next = NodePath("ScrollContainer/ControlsVBox/Left/Keyboard")
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="Header" type="HBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input"]
margin_right = 218.0
margin_bottom = 12.0
rect_min_size = Vector2( 0, 12 )
[node name="Spacer" type="Label" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Header"]
margin_top = 1.0
[node name="Spacer" type="CenterContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Header"]
margin_right = 92.0
margin_bottom = 11.0
margin_bottom = 12.0
rect_min_size = Vector2( 92, 0 )
align = 1
[node name="UpArrow" type="TextureRect" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Header/Spacer"]
unique_name_in_owner = true
margin_left = 42.0
margin_top = 2.0
margin_right = 50.0
margin_bottom = 10.0
texture = SubResource( 3 )
[node name="Keyboard" type="Label" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Header"]
margin_left = 96.0
@ -481,29 +501,44 @@ size_flags_horizontal = 3
text = "Gamepad"
align = 1
[node name="Left" type="HBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input"]
[node name="ScrollContainer" type="ScrollContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input"]
margin_top = 16.0
margin_right = 218.0
margin_bottom = 26.0
margin_bottom = 98.0
size_flags_horizontal = 3
size_flags_vertical = 3
script = ExtResource( 10 )
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Left"]
[node name="ControlsVBox" type="VBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer"]
unique_name_in_owner = true
margin_right = 218.0
margin_bottom = 122.0
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="Left" type="HBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox"]
margin_right = 218.0
margin_bottom = 10.0
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Left"]
margin_right = 92.0
margin_bottom = 10.0
rect_min_size = Vector2( 92, 0 )
text = "left"
align = 1
[node name="Keyboard" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Left"]
[node name="Keyboard" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Left"]
margin_left = 96.0
margin_right = 155.0
margin_bottom = 10.0
focus_neighbour_left = NodePath("../..")
size_flags_horizontal = 3
text = "-"
script = ExtResource( 8 )
action = "move_left"
options_screen = NodePath("../../../../../../../..")
options_screen = NodePath("../../../../../../../../../..")
[node name="Gamepad" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Left"]
[node name="Gamepad" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Left"]
margin_left = 159.0
margin_right = 218.0
margin_bottom = 10.0
@ -512,31 +547,32 @@ text = "-"
icon_align = 1
script = ExtResource( 9 )
action = "move_left"
options_screen = NodePath("../../../../../../../..")
options_screen = NodePath("../../../../../../../../../..")
[node name="Right" type="HBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input"]
margin_top = 30.0
[node name="Right" type="HBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox"]
margin_top = 14.0
margin_right = 218.0
margin_bottom = 40.0
margin_bottom = 24.0
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Right"]
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Right"]
margin_right = 92.0
margin_bottom = 10.0
rect_min_size = Vector2( 92, 0 )
text = "right"
align = 1
[node name="Keyboard" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Right"]
[node name="Keyboard" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Right"]
margin_left = 96.0
margin_right = 155.0
margin_bottom = 10.0
focus_neighbour_left = NodePath("../..")
size_flags_horizontal = 3
text = "-"
script = ExtResource( 8 )
action = "move_right"
options_screen = NodePath("../../../../../../../..")
options_screen = NodePath("../../../../../../../../../..")
[node name="Gamepad" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Right"]
[node name="Gamepad" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Right"]
margin_left = 159.0
margin_right = 218.0
margin_bottom = 10.0
@ -544,31 +580,32 @@ size_flags_horizontal = 3
text = "-"
script = ExtResource( 9 )
action = "move_right"
options_screen = NodePath("../../../../../../../..")
options_screen = NodePath("../../../../../../../../../..")
[node name="Up" type="HBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input"]
margin_top = 44.0
[node name="Up" type="HBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox"]
margin_top = 28.0
margin_right = 218.0
margin_bottom = 54.0
margin_bottom = 38.0
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Up"]
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Up"]
margin_right = 92.0
margin_bottom = 10.0
rect_min_size = Vector2( 92, 0 )
text = "up"
align = 1
[node name="Keyboard" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Up"]
[node name="Keyboard" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Up"]
margin_left = 96.0
margin_right = 155.0
margin_bottom = 10.0
focus_neighbour_left = NodePath("../..")
size_flags_horizontal = 3
text = "-"
script = ExtResource( 8 )
action = "move_up"
options_screen = NodePath("../../../../../../../..")
options_screen = NodePath("../../../../../../../../../..")
[node name="Gamepad" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Up"]
[node name="Gamepad" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Up"]
margin_left = 159.0
margin_right = 218.0
margin_bottom = 10.0
@ -576,31 +613,32 @@ size_flags_horizontal = 3
text = "-"
script = ExtResource( 9 )
action = "move_up"
options_screen = NodePath("../../../../../../../..")
options_screen = NodePath("../../../../../../../../../..")
[node name="Down" type="HBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input"]
margin_top = 58.0
[node name="Down" type="HBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox"]
margin_top = 42.0
margin_right = 218.0
margin_bottom = 68.0
margin_bottom = 52.0
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Down"]
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Down"]
margin_right = 92.0
margin_bottom = 10.0
rect_min_size = Vector2( 92, 0 )
text = "down"
align = 1
[node name="Keyboard" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Down"]
[node name="Keyboard" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Down"]
margin_left = 96.0
margin_right = 155.0
margin_bottom = 10.0
focus_neighbour_left = NodePath("../..")
size_flags_horizontal = 3
text = "-"
script = ExtResource( 8 )
action = "move_down"
options_screen = NodePath("../../../../../../../..")
options_screen = NodePath("../../../../../../../../../..")
[node name="Gamepad" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Down"]
[node name="Gamepad" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Down"]
margin_left = 159.0
margin_right = 218.0
margin_bottom = 10.0
@ -608,31 +646,98 @@ size_flags_horizontal = 3
text = "-"
script = ExtResource( 9 )
action = "move_down"
options_screen = NodePath("../../../../../../../..")
options_screen = NodePath("../../../../../../../../../..")
[node name="Jump" type="HBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input"]
margin_top = 72.0
[node name="Confirm" type="HBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox"]
margin_top = 56.0
margin_right = 218.0
margin_bottom = 82.0
margin_bottom = 66.0
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Jump"]
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Confirm"]
margin_right = 92.0
margin_bottom = 10.0
rect_min_size = Vector2( 92, 0 )
text = "jump/confirm"
text = "confirm"
align = 1
[node name="Keyboard" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Jump"]
[node name="Keyboard" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Confirm"]
margin_left = 96.0
margin_right = 155.0
margin_bottom = 10.0
focus_neighbour_left = NodePath("../..")
size_flags_horizontal = 3
text = "-"
script = ExtResource( 8 )
action = "ui_accept"
options_screen = NodePath("../../../../../../../../../..")
[node name="Gamepad" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Confirm"]
margin_left = 159.0
margin_right = 218.0
margin_bottom = 10.0
size_flags_horizontal = 3
text = "-"
script = ExtResource( 9 )
action = "ui_accept"
options_screen = NodePath("../../../../../../../../../..")
[node name="Back" type="HBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox"]
margin_top = 70.0
margin_right = 218.0
margin_bottom = 80.0
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Back"]
margin_right = 92.0
margin_bottom = 10.0
rect_min_size = Vector2( 92, 0 )
text = "back"
align = 1
[node name="Keyboard" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Back"]
margin_left = 96.0
margin_right = 155.0
margin_bottom = 10.0
focus_neighbour_left = NodePath("../..")
size_flags_horizontal = 3
text = "-"
script = ExtResource( 8 )
action = "ui_cancel"
options_screen = NodePath("../../../../../../../../../..")
[node name="Gamepad" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Back"]
margin_left = 159.0
margin_right = 218.0
margin_bottom = 10.0
size_flags_horizontal = 3
text = "-"
script = ExtResource( 9 )
action = "ui_cancel"
options_screen = NodePath("../../../../../../../../../..")
[node name="Jump" type="HBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox"]
margin_top = 84.0
margin_right = 218.0
margin_bottom = 94.0
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Jump"]
margin_right = 92.0
margin_bottom = 10.0
rect_min_size = Vector2( 92, 0 )
text = "jump"
align = 1
[node name="Keyboard" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Jump"]
margin_left = 96.0
margin_right = 155.0
margin_bottom = 10.0
focus_neighbour_left = NodePath("../..")
size_flags_horizontal = 3
text = "-"
script = ExtResource( 8 )
action = "jump"
options_screen = NodePath("../../../../../../../..")
options_screen = NodePath("../../../../../../../../../..")
[node name="Gamepad" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Jump"]
[node name="Gamepad" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Jump"]
margin_left = 159.0
margin_right = 218.0
margin_bottom = 10.0
@ -640,31 +745,32 @@ size_flags_horizontal = 3
text = "-"
script = ExtResource( 9 )
action = "jump"
options_screen = NodePath("../../../../../../../..")
options_screen = NodePath("../../../../../../../../../..")
[node name="Attack" type="HBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input"]
margin_top = 86.0
[node name="Attack" type="HBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox"]
margin_top = 98.0
margin_right = 218.0
margin_bottom = 96.0
margin_bottom = 108.0
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Attack"]
[node name="Label" type="Label" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Attack"]
margin_right = 92.0
margin_bottom = 10.0
rect_min_size = Vector2( 92, 0 )
text = "attack/back"
text = "attack"
align = 1
[node name="Keyboard" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Attack"]
[node name="Keyboard" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Attack"]
margin_left = 96.0
margin_right = 155.0
margin_bottom = 10.0
focus_neighbour_left = NodePath("../..")
size_flags_horizontal = 3
text = "-"
script = ExtResource( 8 )
action = "shoot"
options_screen = NodePath("../../../../../../../..")
options_screen = NodePath("../../../../../../../../../..")
[node name="Gamepad" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/Attack"]
[node name="Gamepad" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/Attack"]
margin_left = 159.0
margin_right = 218.0
margin_bottom = 10.0
@ -672,16 +778,50 @@ size_flags_horizontal = 3
text = "-"
script = ExtResource( 9 )
action = "shoot"
options_screen = NodePath("../../../../../../../..")
options_screen = NodePath("../../../../../../../../../..")
[node name="DefaultControls" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input"]
[node name="DefaultControls" type="Button" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox"]
margin_left = 81.0
margin_top = 100.0
margin_top = 112.0
margin_right = 137.0
margin_bottom = 110.0
margin_bottom = 122.0
focus_neighbour_left = NodePath("..")
focus_neighbour_right = NodePath("..")
size_flags_horizontal = 4
text = "defaults"
[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input"]
margin_top = 102.0
margin_right = 218.0
margin_bottom = 112.0
[node name="Spacer" type="CenterContainer" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/HBoxContainer"]
margin_right = 92.0
margin_bottom = 10.0
rect_min_size = Vector2( 92, 0 )
[node name="DownArrow" type="TextureRect" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/HBoxContainer/Spacer"]
unique_name_in_owner = true
margin_left = 42.0
margin_top = 1.0
margin_right = 50.0
margin_bottom = 9.0
texture = SubResource( 4 )
[node name="Keyboard" type="Label" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/HBoxContainer"]
margin_left = 96.0
margin_right = 155.0
margin_bottom = 10.0
size_flags_horizontal = 3
align = 1
[node name="Gamepad" type="Label" parent="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/HBoxContainer"]
margin_left = 159.0
margin_right = 218.0
margin_bottom = 10.0
size_flags_horizontal = 3
align = 1
[connection signal="selected" from="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/SelectTab" to="." method="_on_tab_selected"]
[connection signal="selected" from="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Game/Rumble/SelectRumble" to="." method="_on_Rumble_selected"]
[connection signal="selected" from="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Game/Gore/SelectGore" to="." method="_on_Gore_selected"]
@ -697,3 +837,4 @@ text = "defaults"
[connection signal="value_changed" from="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Audio/Music/SelectMusicVol" to="." method="_on_MusicVol_value_changed"]
[connection signal="value_changed" from="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Audio/Sound/SelectSoundVol" to="." method="_on_SoundVol_value_changed"]
[connection signal="selected" from="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Audio/LandingSound/SelectLandingSound" to="." method="_on_LandingSound_selected"]
[connection signal="button_down" from="CenterContainer/PanelContainer/MarginContainer/VBoxContainer/Tabs/Input/ScrollContainer/ControlsVBox/DefaultControls" to="." method="_on_DefaultControls_button_down"]

View file

@ -0,0 +1,39 @@
extends ScrollContainer
onready var up_arrow: TextureRect = $"%UpArrow"
onready var down_arrow: TextureRect = $"%DownArrow"
onready var controls_v_box: VBoxContainer = $"%ControlsVBox"
func _ready() -> void:
yield(get_tree(), "idle_frame")
get_viewport().connect("gui_focus_changed", self, "_on_focus_changed")
connect("visibility_changed", self, "_on_visibility_changed")
func _exit_tree() -> void:
get_viewport().disconnect("gui_focus_changed", self, "_on_focus_changed")
func _on_focus_changed(focused: Control) -> void:
if is_a_parent_of(focused):
var foc_rect := focused.get_global_rect()
if not get_global_rect().encloses(foc_rect):
var direction := sign(foc_rect.position.y - get_global_rect().position.y)
scroll_vertical += direction * 14.0
if scroll_vertical < 1.0:
up_arrow.visible = false
else:
up_arrow.visible = true
if scroll_vertical > 35.0:
down_arrow.visible = false
else:
down_arrow.visible = true
func _on_visibility_changed() -> void:
scroll_vertical = 0.0
up_arrow.visible = false

View file

@ -15,6 +15,7 @@ var gamepad_buttons := GAMEPAD_BUTTONS.duplicate()
func _init() -> void:
icon_align = Button.ALIGN_CENTER
connect("pressed", self, "_on_pressed")
add_to_group("controls_buttons")
func _ready() -> void:

View file

@ -13,6 +13,7 @@ var listen := false
func _init() -> void:
connect("pressed", self, "_on_pressed")
add_to_group("controls_buttons")
func _ready() -> void: