From d4ebf9c5857408d42b83871d01dd8e5348ee344b Mon Sep 17 00:00:00 2001 From: Emmanouil Papadeas Date: Tue, 21 Mar 2023 01:45:09 +0200 Subject: [PATCH] Use Vector2s for min and max values in ValueSliderV2 This lets us have different min/max values for x and y. --- src/Tools/SelectionTools/SelectionTool.tscn | 2 +- src/UI/Nodes/ValueSliderV2.gd | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Tools/SelectionTools/SelectionTool.tscn b/src/Tools/SelectionTools/SelectionTool.tscn index 455ca2484..49379f365 100644 --- a/src/Tools/SelectionTools/SelectionTool.tscn +++ b/src/Tools/SelectionTools/SelectionTool.tscn @@ -44,7 +44,7 @@ margin_top = 160.0 margin_right = 116.0 margin_bottom = 212.0 value = Vector2( 1, 1 ) -min_value = 1.0 +min_value = Vector2( 1, 1 ) allow_greater = true show_ratio = true prefix_x = "Width:" diff --git a/src/UI/Nodes/ValueSliderV2.gd b/src/UI/Nodes/ValueSliderV2.gd index 3575f3b8a..055690b0d 100644 --- a/src/UI/Nodes/ValueSliderV2.gd +++ b/src/UI/Nodes/ValueSliderV2.gd @@ -6,8 +6,8 @@ signal value_changed(value) export var editable := true setget _set_editable export var value := Vector2.ZERO setget _set_value -export var min_value := 0.0 setget _set_min_value -export var max_value := 100.0 setget _set_max_value +export var min_value := Vector2.ZERO setget _set_min_value +export var max_value := Vector2(100.0, 100.0) setget _set_max_value export var step := 1.0 setget _set_step export var allow_greater := false setget _set_allow_greater export var allow_lesser := false setget _set_allow_lesser @@ -43,7 +43,7 @@ func _gcd(a: int, b: int) -> int: func _on_X_value_changed(val: float) -> void: value.x = val if _locked_ratio: - self.value.y = max(min_value, (value.x / ratio.x) * ratio.y) + self.value.y = max(min_value.y, (value.x / ratio.x) * ratio.y) if _can_emit_signal: emit_signal("value_changed", value) @@ -51,7 +51,7 @@ func _on_X_value_changed(val: float) -> void: func _on_Y_value_changed(val: float) -> void: value.y = val if _locked_ratio: - self.value.x = max(min_value, (value.y / ratio.y) * ratio.x) + self.value.x = max(min_value.x, (value.y / ratio.y) * ratio.x) if _can_emit_signal: emit_signal("value_changed", value) @@ -83,16 +83,16 @@ func _set_value(val: Vector2) -> void: _can_emit_signal = true -func _set_min_value(val: float) -> void: +func _set_min_value(val: Vector2) -> void: min_value = val - for slider in get_sliders(): - slider.min_value = val + $GridContainer/X.min_value = val.x + $GridContainer/Y.min_value = val.y -func _set_max_value(val: float) -> void: +func _set_max_value(val: Vector2) -> void: max_value = val - for slider in get_sliders(): - slider.max_value = val + $GridContainer/X.max_value = val.x + $GridContainer/Y.max_value = val.y func _set_step(val: float) -> void: