Skip to content

Conversation

@atomic-junky
Copy link
Collaborator

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.

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.
@atomic-junky atomic-junky requested a review from Copilot October 30, 2025 17:59
@coderabbitai
Copy link

coderabbitai bot commented Oct 30, 2025

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Note

Other AI code review bot(s) detected

CodeRabbit 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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

Copilot AI left a 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.

atomic-junky and others added 12 commits October 30, 2025 19:03
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.
Copilot AI and others added 30 commits November 7, 2025 18:30
…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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants