[gd_scene format=3 uid="uid://cwby0in0f2wi2"] [sub_resource type="GDScript" id="GDScript_aclmm"] resource_name = "FloatEditor" script/source = "extends HBoxContainer @export var changes_value : String = \"height\" @onready var terrain : TerrainMeshEditor = ($\"../../..\" as LayerEditor).terrain @onready var primitive : TerrainPrimitive = terrain.current_selected var value_before : float = 0.0 var dragging := false func connect_changes(): $HSlider.drag_ended.connect(_drag_ended) $HSlider.drag_started.connect(_drag_started) $HSlider.value_changed.connect(_slider_value_changed) $SpinBox.value_changed.connect(_spin_value_changed) func _ready() -> void: primitive.changed.connect(_primitive_changed) connect_changes() _primitive_changed(); func _primitive_changed(): var value : float = primitive.get(changes_value) $HSlider.set_value_no_signal(value) $SpinBox.set_value_no_signal(value) func _spin_value_changed(value : float): var old : float = primitive.get(changes_value) var new : float = $SpinBox.value EditHistory.push_action(primitive.set.bind(changes_value, new), primitive.set.bind(changes_value, old)) func _drag_started(): dragging = true value_before = primitive.get(changes_value) func _slider_value_changed(value : float): primitive.set(changes_value, value) func _drag_ended(changed : bool): dragging = false if changed: EditHistory.push_action(primitive.set.bind(changes_value, $HSlider.value), primitive.set.bind(changes_value, value_before)) " [node name="FloatEditor" type="HBoxContainer" unique_id=1730998858] offset_right = 318.0 offset_bottom = 31.0 script = SubResource("GDScript_aclmm") [node name="SpinBox" type="SpinBox" parent="." unique_id=580598896] custom_minimum_size = Vector2(100, 0) layout_mode = 2 min_value = -10000.0 max_value = 100000.0 step = 0.01 value = 10.0 allow_greater = true alignment = 2 custom_arrow_step = 1.0 custom_arrow_round = true [node name="HSlider" type="HSlider" parent="." unique_id=163542019] layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 1 max_value = 300.0 step = 0.01 value = 200.0 tick_count = 4