-
Notifications
You must be signed in to change notification settings - Fork 3
Overall Rework #64
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Overall Rework #64
Conversation
Major refactor of editor layouts, inspector panels, and field components. Introduces a new node and field architecture, removes legacy inspector and field files, and adds new autoloads and common utilities. Updates project and scene files to support the new structure and includes new splash assets.
Renamed monologue_graph_node.gd to inspectable_node.gd and added a 'notes' property. Updated property definition to support categories. Improved graph node view construction to include a custom title row and separators, and added a utility for readable key names. Updated multiple .import files to include new compression and channel remap settings.
Refactored GraphNodeRow to use key/value pairs instead of a single content string, and updated all usages accordingly. Improved the rendering of graph node views by building rows with key and value labels, applying new theme variations for better visual distinction. Removed unused scene files for root and sentence nodes, and added settings support to InspectableObject and root node. Updated font import settings for better font rendering and added new theme variations for graph node row and value labels.
Introduced expose button UI for properties in the inspector, with new icons for exposed, unexposed, and unexposable states. Updated InspectableNode to track displayed and exposed properties, and adjusted property definition and editor creation to support exposure logic. Refactored node and property handling in graph edit and node classes to align with new exposure and settings structure. Added a sample SentenceNode to the storyline for testing.
…pose graph row Replaces the 'options' dictionary in Property with 'settings' throughout the codebase for consistency. Updates property change notification signatures to include the node instance, and adds support for toggling property exposure in the inspector and graph edit views. Also introduces a method to update property settings and ensures graph nodes refresh their views when properties change.
Replaces left/right slot icons with new slot_in, slot_out, and slot_node icons, updating import files and removing old assets. Refactors GraphNodeRow to use a 'type' property instead of 'value', and updates MonologueGraphEdit to display type and color for each row, including slot icon assignment. Adds connection request handling and propagates connection changes with undo/redo support. Updates text field metadata to include a color. Disables the node picker window logic in GraphNodePicker for now.
Refactored property and node change handling to use a new CommandManager and command pattern for undo/redo support. Added Command, CommandManager, PropertyChangeCommand, PropertySettingsChangeCommand, and NodeConnectionCommand classes. Updated InspectableObject, InspectableNode, and StorylineDocument to integrate with the new history system. Adjusted observer and property change notification logic to use signals and callables. Updated UI and editor logic to trigger undo/redo actions and reflect changes. Moved old history files to a separate directory.
Introduces a `display` property to property settings, allowing properties to be hidden from the node view by default. If a property is hidden and exposed, the property is still shown in the node view.
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request implements a major overhaul of the Monologue system to add new features and improve the overall architecture. The PR introduces a more modular and intuitive interface with several quality-of-life improvements, including exposable properties.
Key changes include:
- Addition of new autoload managers (storyline_manager.gd, field.gd) for better system organization
- Temporary disabling of NODE_SCENES constants to prevent conflicts during the refactor
- Updates to third-party addon dependencies (gdUnit4, dockable_container, beautify_code_on_save, Todo_Manager) with version upgrades and UID changes
Reviewed Changes
Copilot reviewed 296 out of 748 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| autoloads/storyline_manager.gd | New storyline management system with document handling and observer pattern |
| autoloads/field.gd | New field autoload for system organization |
| autoloads/constants.gd | Temporarily comments out NODE_SCENES to prevent conflicts during refactor |
| addons/gdUnit4/* | Updates to gdUnit4 testing framework including version bump to 5.0.5 |
| addons/dockable_container/* | Addition of new dockable container system for UI management |
| addons/beautify_code_on_save/* | Addition of code formatting plugin |
| addons/Todo_Manager/* | Addition of TODO management plugin |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Introduces a new TextNode class with exportable 'text' property. Refactors inspector panel to handle special property categories and flat properties, and updates the monologue graph edit to support exportable properties and type-safe connections. Also adds context field support, improves field bucket indexing, and updates related UI scenes and icons.
…type Co-authored-by: atomic-junky <67459553+atomic-junky@users.noreply.github.com>
Co-authored-by: atomic-junky <67459553+atomic-junky@users.noreply.github.com>
Co-authored-by: atomic-junky <67459553+atomic-junky@users.noreply.github.com>
Introduces define_main_property to standardize main property definition for nodes, replacing setup_main_property. Updates node classes to use the new method and adjusts property display logic in the graph editor. Adds observer removal in inspector panel, ensures non-editable properties are not shown in the inspector, and cleans up empty inspector categories. Also updates slot icon SVGs and increases graph edit zoom max.
Co-authored-by: atomic-junky <67459553+atomic-junky@users.noreply.github.com>
Co-authored-by: atomic-junky <67459553+atomic-junky@users.noreply.github.com>
Replaces 'has_input_port' and 'has_output_port' with 'exposed' and 'export' for property port configuration. Updates property editor, node initialization, and graph node rendering to use the new settings. Renames 'is_connected' to 'is_port_connected' for clarity and updates related usages and tests. Also adjusts the 'unexposable.svg' icon and improves warning handling for missing command managers.
…ormat Co-authored-by: atomic-junky <67459553+atomic-junky@users.noreply.github.com>
Co-authored-by: atomic-junky <67459553+atomic-junky@users.noreply.github.com>
Co-authored-by: atomic-junky <67459553+atomic-junky@users.noreply.github.com>
…d for characters Co-authored-by: atomic-junky <67459553+atomic-junky@users.noreply.github.com>
…ld call Co-authored-by: atomic-junky <67459553+atomic-junky@users.noreply.github.com>
Co-authored-by: atomic-junky <67459553+atomic-junky@users.noreply.github.com>
Implement property lists with custom layouts and storyline integration
This pull request aims to revamp the way Monologue works by adding lots of new features and QoL features such as exposable properties and a more modular and intuitive interface.