mj177/addons/cyclops_level_builder/controls/vector3_edit.gd
2025-02-03 19:17:20 +01:00

44 lines
817 B
GDScript

@tool
extends HBoxContainer
class_name Vector3Edit
signal value_changed(value:Vector3)
@export var value:Vector3:
get:
return value
set(v):
if value == v:
return
value = v
value_changed.emit(v)
dirty = true
var dirty:bool = true
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
if dirty:
%edit_x.value = value.x
%edit_y.value = value.y
%edit_z.value = value.z
dirty = false
func _on_edit_x_value_changed(v:float):
value = Vector3(v, value.y, value.z)
func _on_edit_y_value_changed(v:float):
value = Vector3(value.x, v, value.z)
func _on_edit_z_value_changed(v:float):
value = Vector3(value.x, value.y, v)