Stop brings the player back to the scene they were in instead of the main
menu, and a scene switch inside the played scenario ends the play-test in
place. New GUI test suite ingame_play covers both.
The mod holding the main game's own scenes and story follows the <game>_game
naming rule; further parts stay <game>_<part>, reusable content is <theme>_pack.
A collection is no longer a file inside a mod: it is a package (folder or zip)
named after its id with collection.json, cover and optional locale/, shipped in
collections/ next to the mods or kept by the player in user://collections/.
Covers and texts come from the package; mods do not ship collections.
Mods are renamed by role (shell2d_base, menu_base, ui_base, live2d_base,
editor_tools, cthangover_story, cthangover_murakami, cthangover_party) and
every reference follows. Engine UI prefabs (dialog, answers, message, game
menu, inventory, map, skills) and their panel entries moved out of the story
mod into the subsystem mods; the card_novel and vn_starter_novel collections
are removed.
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.