44 lines
817 B
GDScript
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)
|