progress
This commit is contained in:
50
addons/cutscene_editor/editor/CutsceneGraphEdit.gd
Normal file → Executable file
50
addons/cutscene_editor/editor/CutsceneGraphEdit.gd
Normal file → Executable file
@@ -16,9 +16,6 @@ var node_counter: int = 0 # For generating unique node IDs
|
||||
var current_cutscene: CutsceneResource # The cutscene being edited
|
||||
|
||||
# Preview properties
|
||||
var preview_manager: PreviewManager
|
||||
var preview_panel: PreviewPanel
|
||||
|
||||
# Undo/Redo properties
|
||||
var undo_redo_manager: UndoRedoManager
|
||||
|
||||
@@ -289,7 +286,7 @@ func _on_graph_node_deleted(node: BaseGraphNode) -> void:
|
||||
# Remove all connections to/from this node
|
||||
var connections = get_connection_list()
|
||||
for connection in connections:
|
||||
if connection["from_node"] == node.node_id or connection["to_node"] == node.node_id:
|
||||
if connection["from_node"] == node.name or connection["to_node"] == node.name:
|
||||
disconnect_node(connection["from_node"], connection["from_port"], connection["to_node"], connection["to_port"])
|
||||
|
||||
|
||||
@@ -332,6 +329,9 @@ func clear_graph() -> void:
|
||||
# Emit signal
|
||||
emit_signal("graph_changed")
|
||||
|
||||
func get_graph_node_by_id(id: String):
|
||||
return find_child(id)
|
||||
|
||||
# Load graph from cutscene resource
|
||||
func load_from_cutscene(cutscene: CutsceneResource) -> void:
|
||||
# Clear existing graph
|
||||
@@ -343,14 +343,16 @@ func load_from_cutscene(cutscene: CutsceneResource) -> void:
|
||||
# Create nodes from cutscene data
|
||||
for node_data in cutscene.nodes:
|
||||
var node = add_node(node_data["type"], Vector2(node_data["position"]["x"], node_data["position"]["y"]))
|
||||
node.owner=self
|
||||
if node:
|
||||
node.node_id = node_data["id"]
|
||||
node.name = node_data["id"]
|
||||
# Set node parameters
|
||||
for param_name in node_data["parameters"]:
|
||||
node.set_parameter(param_name, node_data["parameters"][param_name])
|
||||
|
||||
# Create connections from cutscene data
|
||||
for connection_data in cutscene.connections:
|
||||
print(get_graph_node_by_id(connection_data["from_node"]))
|
||||
connect_node(connection_data["from_node"], connection_data["from_port"],
|
||||
connection_data["to_node"], connection_data["to_port"])
|
||||
|
||||
@@ -370,7 +372,7 @@ func save_to_cutscene() -> CutsceneResource:
|
||||
for child in get_children():
|
||||
if child is BaseGraphNode:
|
||||
var node_data = {
|
||||
"id": child.node_id,
|
||||
"id": str(child.name),
|
||||
"type": child.node_type,
|
||||
"position": {
|
||||
"x": child.position_offset.x,
|
||||
@@ -384,9 +386,9 @@ func save_to_cutscene() -> CutsceneResource:
|
||||
for connection in get_connection_list():
|
||||
var connection_data = {
|
||||
"id": _generate_unique_connection_id(),
|
||||
"from_node": connection["from_node"],
|
||||
"from_node": str(connection["from_node"]),
|
||||
"from_port": connection["from_port"],
|
||||
"to_node": connection["to_node"],
|
||||
"to_node": str(connection["to_node"]),
|
||||
"to_port": connection["to_port"]
|
||||
}
|
||||
current_cutscene.connections.append(connection_data)
|
||||
@@ -398,39 +400,7 @@ func _generate_unique_connection_id() -> String:
|
||||
return "conn_" + str(Time.get_ticks_msec())
|
||||
|
||||
|
||||
# Set up preview system
|
||||
func setup_preview() -> void:
|
||||
# Create preview manager
|
||||
preview_manager = PreviewManager.new()
|
||||
add_child(preview_manager)
|
||||
|
||||
# Create preview panel
|
||||
preview_panel = PreviewPanel.new()
|
||||
preview_panel.set_preview_manager(preview_manager)
|
||||
preview_panel.set_graph_edit(self)
|
||||
|
||||
# Add to editor interface (this would be added to the editor UI)
|
||||
# For now, we'll just keep a reference to it
|
||||
|
||||
# Start preview
|
||||
func start_preview() -> void:
|
||||
if preview_manager:
|
||||
preview_manager.start_preview()
|
||||
|
||||
# Stop preview
|
||||
func stop_preview() -> void:
|
||||
if preview_manager:
|
||||
preview_manager.stop_preview()
|
||||
|
||||
# Pause preview
|
||||
func pause_preview() -> void:
|
||||
if preview_manager:
|
||||
preview_manager.pause_preview()
|
||||
|
||||
# Resume preview
|
||||
func resume_preview() -> void:
|
||||
if preview_manager:
|
||||
preview_manager.resume_preview()
|
||||
|
||||
# Set up undo/redo system
|
||||
func _setup_undo_redo() -> void:
|
||||
|
||||
Reference in New Issue
Block a user