Files
experiment-adventure-ai/addons/cutscene_editor/editor/nodes/MoveActionNode.gd
2025-08-01 08:34:51 -07:00

52 lines
1.5 KiB
GDScript
Executable File

@tool
class_name MoveActionNode
extends "res://addons/cutscene_editor/editor/nodes/BaseGraphNode.gd"
# Node for MoveAction
func _init() -> void:
node_type = "move"
name = "move_" + str(randi())
title = "Move"
modulate = Color(0.4, 0.6, 1.0) # Blue
# One input and one output connection
var slot = 0
set_slot(slot, true, 0, Color(0, 0, 0), true, 0, Color(0, 0, 0))
func _ready() -> void:
super._ready()
# Initialize default parameters
action_parameters["character"] = ""
action_parameters["target_x"] = 0.0
action_parameters["target_y"] = 0.0
action_parameters["speed"] = 100.0
func set_parameter(pname, value) -> void:
super.set_parameter(name, value)
if pname == "character":
$VBoxContainer/CharacterEDit.text = value
elif pname == "target_x":
$VBoxContainer/HBoxContainer/x.text = value
elif pname == "target_y":
$VBoxContainer/HBoxContainer/y.text = value
elif pname == "speed":
$VBoxContainer/speed.text = value
func _on_character_changed(new_text: String) -> void:
set_parameter("character", new_text)
func _on_target_x_changed(new_text: String) -> void:
var value = float(new_text) if new_text.is_valid_float() else 0.0
set_parameter("target_x", value)
func _on_target_y_changed(new_text: String) -> void:
print("toarget y")
var value = float(new_text) if new_text.is_valid_float() else 0.0
set_parameter("target_y", value)
func _on_speed_changed(new_text: String) -> void:
print("speed")
var value = float(new_text) if new_text.is_valid_float() else 100.0
set_parameter("speed", value)