Files
experiment-adventure-ai/addons/cutscene_editor/editor/nodes/TurnActionNode.gd
2025-08-01 16:06:32 -07:00

39 lines
1.1 KiB
GDScript

@tool
class_name TurnActionNode
extends "res://addons/cutscene_editor/editor/nodes/BaseGraphNode.gd"
# Node for TurnAction
func _init() -> void:
node_type = "turn"
node_id = "turn_" + str(randi())
title = "Turn"
modulate = Color(0.5, 1.0, 0.5) # Green
# One input and one output connection
var slot = 0
set_slot(slot, true, 0, Color(0, 0, 0), true, 0, Color(0, 0, 0))
action_parameters["character"] = ""
action_parameters["target"] = ""
action_parameters["turn_speed"] = 2.0
func _ready() -> void:
super._ready()
# Initialize default parameters
func _parameters_to_view() -> void:
$VBoxContainer/character.text = action_parameters["character"]
$VBoxContainer/target.text = action_parameters["target"]
$VBoxContainer/turn_speed.text = str(action_parameters["turn_speed"])
func _on_character_changed(new_text: String) -> void:
set_parameter("character", new_text)
func _on_target_changed(new_text: String) -> void:
set_parameter("target", new_text)
func _on_turn_speed_changed(new_text: String) -> void:
var value = float(new_text) if new_text.is_valid_float() else 2.0
set_parameter("turn_speed", value)