Commit Graph
30 Commits
Author SHA1 Message Date
cthangover 84dd0965be feat: use authored category names for mods
Store categories as authored strings. Trim and deduplicate without changing case, compare without case sensitivity, and keep all observed categories available to filters and editors.
2026-11-13 17:48:47 +01:00
cthangover 18c58fd117 test: replace fixed waits with observable GUI readiness
Advance integration drivers only after their requested controls, game state or file effects are observable. Preserve the behavioral assertions and shared viewport capture pipeline.
2026-11-13 17:48:45 +01:00
cthangover a82130edb0 fix: retain downloaded collection packages during install
Pass the selected collection and store to the installer so a catalog-only game remains available after installation.
2026-11-13 17:48:42 +01:00
cthangover 173beb7392 fix: join menu warmup before gameplay and shutdown
Track and cancel asynchronous menu preparation so scene changes and shutdown do not leave background owners alive.
2026-11-13 17:48:40 +01:00
cthangover c63acd54a1 chore: align mod versions and dependencies to 0.1.0
Set the demo release floor to 0.1.0 in manifests, dependency requirements and authoring examples. Keep category and runtime changes separate.
2026-11-13 17:48:38 +01:00
cthangover 8580720d05 feat: mark games in development in the game picker 2026-11-06 18:01:22 +01:00
cthangover a43f14356f docs: clarify handling of saves without a game
Remove the legacy-save migration instructions. Slots are listed per game, and saves without a game cannot be assigned or loaded through the normal menu.
2026-11-04 08:46:12 +01:00
cthangover f3157210eb test: update main game launch and hot reload coverage
Enter through LauncherPlay and reload cthangover_game, which owns the starter party. Report missing mods, incompatible versions and collection problems when a game is unavailable.
2026-11-04 08:44:52 +01:00
cthangover ba177280a5 Update menu_base implementation, assets and documentation 2026-10-31 15:28:53 +03:00
cthangover 57450def43 Remove the tool block from the main menu
Authoring tools open from the in-game toolbar only. Menu and test drivers quit
through ApplicationExit.
2026-10-29 13:21:43 +01:00
cthangover 364a0af3d1 Add mod documentation in seven languages 2026-10-29 09:26:03 +01:00
cthangover 50f0324e5c Use the shared Music Pack for main menu music 2026-10-28 13:02:58 +01:00
cthangover 374e6a4a03 menu_flow: unloaded mods are named in the current language 2026-10-24 13:55:36 +02:00
cthangoverandClaude Opus 5.5 55caaf020d Root nodes join through ModRoot.AddDeferred, so a reload that unloads the mod first never hands Godot a freed node
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 11:29:16 +02:00
cthangover e0bc983f39 Settings offer all seven languages; language names in locale/languages_<lang>.properties; localization in es, zh, ja, ko, vi 2026-10-23 20:54:43 +02:00
cthangover a090f74d07 Test screenshots through ViewportCapture: sRGB instead of the dark linear HDR frame 2026-10-23 09:03:56 +02:00
cthangover 9ea7cd65e2 collection_edit: backup of the player's package outside the collections folder, start on it handled 2026-10-22 19:14:56 +02:00
cthangover f68ed6b0ac Mod cover 2026-10-22 17:09:47 +02:00
cthangover f04a2a3661 Game picker and save browser: menu window shell, background warm-up
The main menu warms every ready game's mods up into the assembly cache in the
background (last played first), so picking a game only loads cached assemblies.
Game picker and save browser are scenes on the shared MenuWindowShell (also used by
the settings): caps title, close on the right, footer hint; the picker footer shows
the warm-up state, cards get framed covers with a letter placeholder and Continue as
the main action; the save browser shows 3x2 large cards with the game selector in
the header. new_game waits for the warm-up; menu_flow takes --shots.
2026-10-21 20:15:32 +02:00
cthangover 9bd0483af9 Settings menu: display settings, language codes, style guide window
Display tab: window mode (windowed/maximized/borderless/exclusive), monitor, window
size per monitor (centred, disabled in fullscreen), V-Sync, frame rate cap, reset;
applied and saved at once through the core DisplaySettingsService. Language is read
through LanguageCode (en-en/en_US = English). The window follows the style guide
shell: title and tabs in the header, close on the right, footer hint and per-tab reset.
The main menu hides every session panel of UiHost (pause menu stayed above it).
New suite display_settings (+ --shots); collection_edit leaves the game through the
pause menu and checks it is closed.
2026-10-21 19:18:34 +02:00
cthangover b3ac8aec8f Line endings: LF everywhere
.gitattributes forces LF (CRLF only for .bat/.cmd), core.autocrlf is off;
files that differed only by CRLF are normalized.
2026-10-21 13:29:46 +02:00
cthangover b8fb306a57 Commit pending working-tree changes (local edits, line endings) 2026-10-21 12:32:24 +02:00
cthangover 04c334c36a hot_reload checks that edited data reaches a kept engine mod
A data-only probe mod depending on characters_base has its character edited;
after the reload the template must carry the new name. It failed while the
character factory cached the previous mod set's data.
2026-10-21 10:09:44 +02:00
cthangover 07d7d10fc5 collection_edit reads the studio button key from its UI entry
The suite does not depend on scenario_studio, so the hard-coded studio/title
key was an undeclared resource use (resource_atlas error).
2026-10-21 07:45:36 +02:00
cthangover 75cc3c1279 collection_edit adds the dev_tools toolset and checks the studio
The test includes the whole developer toolset the way a player does and
checks that the scenario studio is loaded with its toolbar button.
2026-10-18 21:32:17 +02:00
cthangover 2f15bba00b Entering an edited running game switches its mod set
New game / Load of the running game re-enter it in place only while it still
matches its collection; after the player edited the collection the mod set is
switched, so added mechanics (the editors) appear. Test suite collection_edit.
2026-10-18 21:20:27 +02:00
cthangover 8331e3e978 Template game = own mod + reusable town_pack
The novel template becomes the intended layering: collection novel_template
lists my_novel_game (its own scenes, scenarios, text), town_pack (reusable
backgrounds and the bar ambience) and the engine. The town entrance and the
home vestibule move from cthangover_game into town_pack instead of being
copied; cthangover_game depends on it. Docs explain how to start a game from
these three layers.
2026-10-18 20:09:06 +02:00
cthangover 4878448082 Rename cthangover_story to cthangover_game
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.
2026-10-18 19:45:52 +02:00
cthangover 78c31abb94 Collections are packages of their own
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.
2026-10-18 19:21:36 +02:00
cthangover 22b67c628c Mod naming rule and engine UI in engine mods
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.
2026-10-18 19:00:34 +02:00