From 94fdfd8f029fd0e94bffe52092918a37df112153 Mon Sep 17 00:00:00 2001 From: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com> Date: Sun, 24 Mar 2024 15:35:40 +0200 Subject: [PATCH] Hide and show dynamics properties when dynamics are enabled --- src/Autoload/Tools.gd | 4 +-- src/UI/GlobalToolOptions/GlobalToolOptions.gd | 21 +++++++++-- .../GlobalToolOptions/GlobalToolOptions.tscn | 36 +++++++++++++------ 3 files changed, 47 insertions(+), 14 deletions(-) diff --git a/src/Autoload/Tools.gd b/src/Autoload/Tools.gd index 6d4f09a55..dcc272950 100644 --- a/src/Autoload/Tools.gd +++ b/src/Autoload/Tools.gd @@ -14,8 +14,8 @@ var alpha_locked := false # Dynamics var stabilizer_enabled := false var stabilizer_value := 16 -var dynamics_alpha: int = Dynamics.NONE -var dynamics_size: int = Dynamics.NONE +var dynamics_alpha := Dynamics.NONE +var dynamics_size := Dynamics.NONE var pen_pressure := 1.0 var pen_pressure_min := 0.2 var pen_pressure_max := 0.8 diff --git a/src/UI/GlobalToolOptions/GlobalToolOptions.gd b/src/UI/GlobalToolOptions/GlobalToolOptions.gd index 1adebe82f..2b3234c83 100644 --- a/src/UI/GlobalToolOptions/GlobalToolOptions.gd +++ b/src/UI/GlobalToolOptions/GlobalToolOptions.gd @@ -18,6 +18,8 @@ enum { ALPHA, SIZE } @onready var size_velocity_button: Button = $"%SizeVelocityButton" @onready var pressure_preview: ProgressBar = $"%PressurePreview" @onready var velocity_preview: ProgressBar = $"%VelocityPreview" +@onready var limits_header: HBoxContainer = %LimitsHeader +@onready var thresholds_header: HBoxContainer = %ThresholdsHeader @onready var alpha_group := alpha_pressure_button.button_group @onready var size_group := size_pressure_button.button_group @@ -117,7 +119,7 @@ func _on_Dynamics_pressed() -> void: func _on_Dynamics_toggled( - button_pressed: bool, button: BaseButton, property: int, dynamic: int + button_pressed: bool, button: BaseButton, property: int, dynamic: Tools.Dynamics ) -> void: var final_dynamic := dynamic if not button.button_pressed: @@ -127,7 +129,22 @@ func _on_Dynamics_toggled( Tools.dynamics_alpha = final_dynamic SIZE: Tools.dynamics_size = final_dynamic - + var has_alpha_dynamic := Tools.dynamics_alpha != Tools.Dynamics.NONE + var has_size_dynamic := Tools.dynamics_size != Tools.Dynamics.NONE + var has_pressure_dynamic := ( + Tools.dynamics_alpha == Tools.Dynamics.PRESSURE + or Tools.dynamics_size == Tools.Dynamics.PRESSURE + ) + var has_velocity_dynamic := ( + Tools.dynamics_alpha == Tools.Dynamics.VELOCITY + or Tools.dynamics_size == Tools.Dynamics.VELOCITY + ) + limits_header.visible = has_alpha_dynamic or has_size_dynamic + thresholds_header.visible = limits_header.visible + get_tree().set_group(&"VisibleOnAlpha", "visible", has_alpha_dynamic) + get_tree().set_group(&"VisibleOnSize", "visible", has_size_dynamic) + get_tree().set_group(&"VisibleOnPressure", "visible", has_pressure_dynamic) + get_tree().set_group(&"VisibleOnVelocity", "visible", has_velocity_dynamic) var texture_button: TextureRect = button.get_node("TextureRect") var file_name := "check.png" if !button.button_pressed: diff --git a/src/UI/GlobalToolOptions/GlobalToolOptions.tscn b/src/UI/GlobalToolOptions/GlobalToolOptions.tscn index a4489c8f3..654e752dd 100644 --- a/src/UI/GlobalToolOptions/GlobalToolOptions.tscn +++ b/src/UI/GlobalToolOptions/GlobalToolOptions.tscn @@ -168,6 +168,7 @@ texture = ExtResource("6") [node name="DynamicsPanel" type="PopupPanel" parent="."] canvas_item_default_texture_filter = 0 size = Vector2i(300, 334) +visible = true [node name="VBoxContainer" type="VBoxContainer" parent="DynamicsPanel"] offset_left = 4.0 @@ -286,6 +287,8 @@ texture = ExtResource("7") expand_mode = 1 [node name="LimitsHeader" type="HBoxContainer" parent="DynamicsPanel/VBoxContainer"] +unique_name_in_owner = true +visible = false layout_mode = 2 [node name="Label" type="Label" parent="DynamicsPanel/VBoxContainer/LimitsHeader"] @@ -301,12 +304,14 @@ size_flags_horizontal = 3 layout_mode = 2 columns = 3 -[node name="AlphaLabel" type="Label" parent="DynamicsPanel/VBoxContainer/LimitContainer"] +[node name="AlphaLabel" type="Label" parent="DynamicsPanel/VBoxContainer/LimitContainer" groups=["VisibleOnAlpha"]] +visible = false layout_mode = 2 size_flags_horizontal = 3 text = "Alpha" -[node name="AlphaMin" type="TextureProgressBar" parent="DynamicsPanel/VBoxContainer/LimitContainer"] +[node name="AlphaMin" type="TextureProgressBar" parent="DynamicsPanel/VBoxContainer/LimitContainer" groups=["VisibleOnAlpha"]] +visible = false layout_mode = 2 size_flags_horizontal = 3 focus_mode = 2 @@ -324,7 +329,8 @@ script = ExtResource("5") prefix = "Start" snap_step = 0.1 -[node name="AlphaMax" type="TextureProgressBar" parent="DynamicsPanel/VBoxContainer/LimitContainer"] +[node name="AlphaMax" type="TextureProgressBar" parent="DynamicsPanel/VBoxContainer/LimitContainer" groups=["VisibleOnAlpha"]] +visible = false layout_mode = 2 size_flags_horizontal = 3 focus_mode = 2 @@ -342,12 +348,14 @@ script = ExtResource("5") prefix = "End" snap_step = 0.1 -[node name="SizeLabel" type="Label" parent="DynamicsPanel/VBoxContainer/LimitContainer"] +[node name="SizeLabel" type="Label" parent="DynamicsPanel/VBoxContainer/LimitContainer" groups=["VisibleOnSize"]] +visible = false layout_mode = 2 size_flags_horizontal = 3 text = "Size" -[node name="SizeMin" type="TextureProgressBar" parent="DynamicsPanel/VBoxContainer/LimitContainer"] +[node name="SizeMin" type="TextureProgressBar" parent="DynamicsPanel/VBoxContainer/LimitContainer" groups=["VisibleOnSize"]] +visible = false layout_mode = 2 size_flags_horizontal = 3 focus_mode = 2 @@ -364,7 +372,8 @@ stretch_margin_bottom = 3 script = ExtResource("5") prefix = "Start" -[node name="SizeMax" type="TextureProgressBar" parent="DynamicsPanel/VBoxContainer/LimitContainer"] +[node name="SizeMax" type="TextureProgressBar" parent="DynamicsPanel/VBoxContainer/LimitContainer" groups=["VisibleOnSize"]] +visible = false layout_mode = 2 size_flags_horizontal = 3 focus_mode = 2 @@ -382,6 +391,8 @@ script = ExtResource("5") prefix = "End" [node name="ThresholdsHeader" type="HBoxContainer" parent="DynamicsPanel/VBoxContainer"] +unique_name_in_owner = true +visible = false layout_mode = 2 [node name="Label" type="Label" parent="DynamicsPanel/VBoxContainer/ThresholdsHeader"] @@ -397,11 +408,13 @@ size_flags_horizontal = 3 layout_mode = 2 columns = 2 -[node name="ThresholdPressureLabel" type="Label" parent="DynamicsPanel/VBoxContainer/ThresholdContainer"] +[node name="ThresholdPressureLabel" type="Label" parent="DynamicsPanel/VBoxContainer/ThresholdContainer" groups=["VisibleOnPressure"]] +visible = false layout_mode = 2 text = "Pressure" -[node name="ThresholdPressure" parent="DynamicsPanel/VBoxContainer/ThresholdContainer" instance=ExtResource("8")] +[node name="ThresholdPressure" parent="DynamicsPanel/VBoxContainer/ThresholdContainer" groups=["VisibleOnPressure"] instance=ExtResource("8")] +visible = false layout_mode = 2 size_flags_horizontal = 3 start = 0.2 @@ -426,12 +439,15 @@ anchor_bottom = 0.0 offset_right = 1.0 offset_bottom = 23.0 -[node name="ThresholdVelocityLabel" type="Label" parent="DynamicsPanel/VBoxContainer/ThresholdContainer"] +[node name="ThresholdVelocityLabel" type="Label" parent="DynamicsPanel/VBoxContainer/ThresholdContainer" groups=["VisibleOnVelocity"]] +visible = false layout_mode = 2 text = "Velocity" -[node name="ThresholdVelocity" parent="DynamicsPanel/VBoxContainer/ThresholdContainer" instance=ExtResource("8")] +[node name="ThresholdVelocity" parent="DynamicsPanel/VBoxContainer/ThresholdContainer" groups=["VisibleOnVelocity"] instance=ExtResource("8")] +visible = false layout_mode = 2 +size_flags_horizontal = 3 start = 0.2 end = 0.8