49 lines
1.5 KiB
GDScript
49 lines
1.5 KiB
GDScript
@tool
|
|
class_name MoveActionNode
|
|
extends "res://addons/cutscene_editor/editor/nodes/BaseGraphNode.gd"
|
|
|
|
# Node for MoveAction
|
|
|
|
func _init() -> void:
|
|
node_type = "move"
|
|
node_id = "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))
|
|
|
|
# Initialize default parameters
|
|
action_parameters["character"] = ""
|
|
action_parameters["target_x"] = 0.0
|
|
action_parameters["target_y"] = 0.0
|
|
action_parameters["speed"] = 100.0
|
|
|
|
func _ready() -> void:
|
|
super._ready()
|
|
func _parameters_to_view() -> void:
|
|
$VBoxContainer/CharacterEDit.text = action_parameters["character"]
|
|
$VBoxContainer/HBoxContainer/x.text = str(action_parameters["target_x"])
|
|
$VBoxContainer/HBoxContainer/y.text = str(action_parameters["target_y"])
|
|
$VBoxContainer/speed.text = str(action_parameters["speed"])
|
|
|
|
func _on_character_changed(new_text: String) -> void:
|
|
print("character" , new_text)
|
|
set_parameter("character", new_text)
|
|
|
|
func _on_target_x_changed(new_text: String) -> void:
|
|
print("target x" , new_text)
|
|
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" , new_text)
|
|
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", new_text)
|
|
var value = float(new_text) if new_text.is_valid_float() else 100.0
|
|
set_parameter("speed", value)
|