The play-test loads the game shell, which frees the screen the editor was
opened from (the novel_editor hub). Both the scenario's end and Stop used to
switch to the engine's main menu; the editor now remembers the route it left
and switches back to it, falling back to the main menu only when it was not
opened from a route. The tools_hub run of the windows suite plays its own
scenario and checks both ways back.
- test_suites/windows (--itest=tools_windows [--shots=<dir>]) opens every
tool window, fails on any engine error logged meanwhile, drives the
map/interactive/light canvases and can save a screenshot per window.
- The tools need the engine mods only; visual_novel_core is no longer a
dependency (the Novel Editor collection brings the content).
Tool windows:
- Every editor (scenario, scene builder, map, interactive objects,
lighting, catalog export) is rebuilt on the interface ToolWindow chrome
and the denser ToolTheme: header with title/close, status bar, Ctrl+S,
dirty-state confirmation.
- Shared building blocks in src/Common: ToolUi (rows, buttons, sections),
CollapsibleSection, FilteredList, ModFileSelector, DragHandle and
BackgroundCanvas (scene background with pan/zoom).
- The map, interactive and light editors draw on canvases
(MapEditorCanvas, InteractiveEditorCanvas, LightEditorCanvas) instead of
one Control "handle" node per object; the *Handle classes are removed.
- Scenario editor: tab data model (TabData), automatic graph layout
(ScenarioGraphLayout), file tree/info/thumbnail panel updates.
- Services: ModFileService (mod file listing and writing),
SceneBackgroundService; MapFileService/ModResourceService follow.
- Catalog export: per-language name/description editing.
- Locale (en/ru) regrouped under tools/*; unused keys removed.
Novel Editor:
- collections/novel_editor.json: a "game" whose entry scene is an
authoring workspace over the novel engine and the story content.
- NovelEditorHub (scenes/novel_editor_hub.tscn) lists every installed
tool through IToolProvider.AddMenuButton; ToolsInitializer registers it
as the logical scene "novel_editor".
- ru name/description for the collection and every block.
- The optional "Validation" block also installs resource_atlas and
locale_atlas next to the validator.