3.5 KiB
3.5 KiB
CutsceneGenerator Changes for Resource Management Focus
Overview
This document describes the changes needed in CutsceneGenerator.gd to focus on resource management instead of code generation.
Current Issues
The current CutsceneGenerator.gd has several issues:
- Focuses on generating GDScript code rather than working with resources
- Has methods for generating code that are not needed
- Should focus on converting graph data to runtime actions
- Has some useful functionality for building action sequences that should be retained
Required Changes
1. Remove Code Generation Methods
Methods to remove:
generate_gdscript_code()_generate_action_sequence_code()_generate_action_code()export_to_format()(or modify to only support resource formats)
2. Retain and Improve Resource-to-Action Conversion
Methods to keep and improve:
generate_cutscene()- This is the core method we want_build_action_sequence()- Core logic for creating action sequences_create_action_from_node()- Core logic for creating individual actions_handle_parallel_group()- Logic for handling parallel actions
3. Update Data Access Methods
Current issues:
- Uses old data structure access patterns
- May need to access data differently with new structure
Changes needed:
- Update to use new node structure with "id" instead of "name"
- Update to use new connection structure
- Remove any references to parallel_connections
4. Improve Action Creation
Current issues:
- Action creation has placeholder values for character nodes
- Needs better parameter handling
Changes needed:
- Improve parameter mapping from node to action
- Maintain flexibility for runtime character resolution
New Focus
The CutsceneGenerator should:
- Take a CutsceneResource and convert it to a CutsceneManager with properly configured actions
- Not generate any code
- Focus purely on the data transformation from editor format to runtime format
- Handle all node types and connection logic correctly
Implementation Plan
1. Remove Unnecessary Methods
- Delete all code generation methods
- Remove export functionality that generates code
- Keep only the core resource-to-action conversion logic
2. Update Core Methods
generate_cutscene(): Ensure it works with new resource structure_build_action_sequence(): Update to use new connection structure_create_action_from_node(): Ensure parameter mapping is correct_handle_parallel_group(): Update to work with new structure
3. Add Utility Methods
- Add methods for validating resource data
- Add methods for resolving character/action references
- Add error handling for malformed resources
4. Improve Documentation
- Update comments to reflect new purpose
- Document the resource-to-action conversion process
- Provide clear examples of usage
Specific Code Changes
In generate_cutscene:
# OLD - May have issues with new structure
for node_data in cutscene_resource.nodes:
graph_nodes[node_data["name"]] = node_data
# NEW - Update to use new structure
for node_data in cutscene_resource.nodes:
graph_nodes[node_data["id"]] = node_data
In _get_outgoing_connections:
# Should work the same but with new structure
# Just ensure it's using the right fields
In _create_action_from_node:
# This method is mostly correct but may need parameter updates
# Ensure all parameter access matches the new structure
New Method Structure
The refactored CutsceneGenerator should have:
- `generate_cutscene(cutscene