Skip to content

Overall Rework#64

Open
atomic-junky wants to merge 154 commits intomainfrom
wip/overall-rework
Open

Overall Rework#64
atomic-junky wants to merge 154 commits intomainfrom
wip/overall-rework

Conversation

@atomic-junky
Copy link
Copy Markdown
Collaborator

@atomic-junky atomic-junky commented Oct 30, 2025

This pull request aims to revamp the way Monologue works.
The main new features are the addition of collections and the ability to expose the port of some properties. The whole project as been updated to allow more flexibilty when adding new features.

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

This comment was marked as outdated.

This comment was marked as outdated.

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.
@atomic-junky atomic-junky marked this pull request as ready for review March 8, 2026 13:25
Replace the custom observer/_notify_change mechanism with a standardized property_changed signal on InspectableObject and update callers to connect/emit that signal (history commands, graph views, dropdowns, list items, etc.).

Refactor ListField to manage list children through new InspectableObject child APIs (get/set/add/remove_property_children), update item creation/duplication/deletion to operate on owner children, rebuild UI from children, and fix value serialization/getters. Remove the now-unused request_child_inspection signal and related code paths in the inspector.
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.

3 participants