72 lines
2.1 KiB
Plaintext
72 lines
2.1 KiB
Plaintext
[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
|