atomic-junky / Monologue

Design complex dialogues for games!
https://atomic-junky.itch.io/monologue
MIT License
12 stars 2 forks source link

Merge main into graph-node-rework #36

Closed atomic-junky closed 2 months ago

atomic-junky commented 2 months ago

Summary by Sourcery

Refactor and enhance the Monologue dialogue editor by introducing new components for managing graph edits and recent files, improving audio handling, and adding comprehensive unit tests. Update the build and CI configurations to align with the new project structure and ensure robust testing.

New Features:

Bug Fixes:

Enhancements:

Build:

CI:

Documentation:

Tests:

sourcery-ai[bot] commented 2 months ago

Reviewer's Guide by Sourcery

This pull request implements significant refactoring and restructuring of the Monologue dialogue editor project. The changes focus on improving code organization, enhancing modularity, and implementing new features while maintaining existing functionality. Key areas of change include the graph editing system, file handling, audio processing, and overall application structure.

File-Level Changes

Change Details Files
Refactored the MonologueProcess class for improved functionality and code organization
  • Added new signals for various events in the dialogue process
  • Implemented new methods for handling audio playback, including support for different audio formats
  • Improved variable handling and conditional text processing
  • Enhanced event parsing and processing
Test/Scripts/MonologueProcess.gd
Restructured the main application logic and user interface
  • Created new classes like GraphEditSwitcher and Header to manage graph editing and UI components
  • Implemented a new system for handling recent files
  • Improved file dialog and project loading functionality
Scripts/MonologueControl.gd
Scripts/SubComponents/GraphEditSwitcher.gd
Scripts/SubComponents/Header.gd
Scripts/SubComponents/RecentFilesContainer.gd
Enhanced audio handling capabilities
  • Implemented support for MP3, OGG, and WAV audio formats
  • Added methods for parsing and playing different audio types
  • Improved error handling for audio file loading and playback
Test/Scripts/SfxLoader.gd
Improved graph node management and interaction
  • Refactored various graph node classes for better consistency and functionality
  • Implemented new methods for loading connections and handling node-specific actions
  • Added a new GraphNodeSelector class for improved node selection and creation
Scripts/GraphNodes/BridgeInNode.gd
Scripts/GraphNodes/ChoiceNode.gd
Scripts/GraphNodes/ConditionNode.gd
Scripts/GraphNodes/DiceRollNode.gd
Scripts/MonologueGraphNode.gd
Scripts/SubComponents/GraphNodeSelector.gd
Added comprehensive unit tests
  • Created test suites for MonologueProcess, GraphEditSwitcher, RecentFilesContainer, and GraphNodeSelector
  • Implemented various test cases to ensure proper functionality of new and refactored components
Test/Unit/TestMonologueProcess.gd
Test/Unit/TestGraphEditSwitcher.gd
Test/Unit/TestRecentFilesContainer.gd
Test/Unit/TestGraphNodeSelector.gd
Updated project configuration and export settings
  • Modified export presets for different platforms
  • Updated project settings and version information
export_presets.cfg
project.godot

Tips - Trigger a new Sourcery review by commenting `@sourcery-ai review` on the pull request. - Continue your discussion with Sourcery by replying directly to review comments. - You can change your review settings at any time by accessing your [dashboard](https://app.sourcery.ai): - Enable or disable the Sourcery-generated pull request summary or reviewer's guide; - Change the review language; - You can always [contact us](mailto:support@sourcery.ai) if you have any questions or feedback.