progress.
This commit is contained in:
88
addons/cutscene_editor/editor/nodes/MoveActionNode.gd
Normal file
88
addons/cutscene_editor/editor/nodes/MoveActionNode.gd
Normal file
@@ -0,0 +1,88 @@
|
||||
@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))
|
||||
|
||||
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 _setup_parameter_fields() -> void:
|
||||
# Character field
|
||||
var char_label = Label.new()
|
||||
char_label.text = "Character:"
|
||||
add_child(char_label)
|
||||
|
||||
var char_field = LineEdit.new()
|
||||
char_field.text = action_parameters["character"]
|
||||
char_field.connect("text_changed", _on_character_changed)
|
||||
add_child(char_field)
|
||||
|
||||
# Target position fields
|
||||
var pos_label = Label.new()
|
||||
pos_label.text = "Target Position:"
|
||||
add_child(pos_label)
|
||||
|
||||
var pos_container = HBoxContainer.new()
|
||||
|
||||
var x_label = Label.new()
|
||||
x_label.text = "X:"
|
||||
pos_container.add_child(x_label)
|
||||
|
||||
var x_field = LineEdit.new()
|
||||
x_field.text = str(action_parameters["target_x"])
|
||||
x_field.size_flags_horizontal = Control.SIZE_EXPAND_FILL
|
||||
x_field.connect("text_changed", _on_target_x_changed)
|
||||
pos_container.add_child(x_field)
|
||||
|
||||
var y_label = Label.new()
|
||||
y_label.text = "Y:"
|
||||
pos_container.add_child(y_label)
|
||||
|
||||
var y_field = LineEdit.new()
|
||||
y_field.text = str(action_parameters["target_y"])
|
||||
y_field.size_flags_horizontal = Control.SIZE_EXPAND_FILL
|
||||
y_field.connect("text_changed", _on_target_y_changed)
|
||||
pos_container.add_child(y_field)
|
||||
|
||||
add_child(pos_container)
|
||||
|
||||
# Speed field
|
||||
var speed_label = Label.new()
|
||||
speed_label.text = "Speed:"
|
||||
add_child(speed_label)
|
||||
|
||||
var speed_field = LineEdit.new()
|
||||
speed_field.text = str(action_parameters["speed"])
|
||||
speed_field.connect("text_changed", _on_speed_changed)
|
||||
add_child(speed_field)
|
||||
|
||||
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:
|
||||
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:
|
||||
var value = float(new_text) if new_text.is_valid_float() else 100.0
|
||||
set_parameter("speed", value)
|
||||
Reference in New Issue
Block a user