Aetheria/Assets/Scripts/UI
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens d503f076e1 Capture presets through their own cache; keep the catalog read-only
Opening the process cache's catalog writable in the editor was the wrong cut.
It made catalog read-only only by convention, so a stray catalog write in play
succeeded and a later flush could land play-mutated instances in Aetheria.cc.

- The process cache opens the catalog read-only in every build again, so the
  missing-global check runs for it as it did before db83cd29. The writable
  empty-seed exemption from ab4ced0f stays for AetherDb and fixtures.
- Loadouts.Commit(catalogPath, loadout, replace) is the only preset writer. It
  opens its own short-lived cache over the catalog, writable, commits the one
  preset conditionally on its key and disposes it. No other cache or instance
  is touched. The running game sees the preset only after the catalog reloads.
  CultLib at a0813c6 allows this: a read-only single-file store takes no lock
  and holds no handle, and the writer's commit takes the exclusive sidecar
  <path>.lock and replaces the file atomically.
- Capture refuses, writing nothing, when Aetheria.cc is missing (it never
  creates the catalog), when a preset of that name exists under another key
  (CultCache does not reject duplicate names on write), or when the key holds a
  preset and replace is not given.
- The console refuses a command with any character outside letters, digits,
  spaces and hyphens instead of stripping it, so "Mk.II" can no longer become
  "MkII". capturepreset refuses a second argument other than replace, so an
  unquoted capturepreset My Ship refuses instead of saving "My".
- The capture log line says the session sees the preset after a reload, and
  that a Studio session opened earlier overwrites captured presets on save.
- Tests: capture while the process cache holds the catalog read-only leaves it
  unchanged; a missing catalog refuses and creates nothing; a same name under a
  Studio-minted key refuses, with or without replace; a game-shaped read-only
  open missing a global throws. The existing preset tests now commit through
  the catalog path.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 23:32:52 +02:00
..
HUD Replace the Database Tools with the Studio and cut Unity over 2026-09-14 19:15:20 +02:00
InputScreen Land RunSave and the one-cache run and player lifecycle (Cut 10) 2026-09-14 22:00:27 +02:00
Menu Make loadouts authored catalog presets with an editor capture command 2026-09-14 23:09:43 +02:00
Properties Panel Replace the Database Tools with the Studio and cut Unity over 2026-09-14 19:15:20 +02:00
BackgroundRenderer.cs First Flight 2020-12-22 03:13:43 +00:00
BackgroundRenderer.cs.meta Generating and Displaying Zones 2020-03-29 04:19:24 +01:00
ClickableCollider.cs Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
ClickableCollider.cs.meta Generating and Displaying Zones 2020-03-29 04:19:24 +01:00
ClickCatcher.cs Playability 2022-08-08 22:43:55 +01:00
ClickCatcher.cs.meta Generating and Displaying Zones 2020-03-29 04:19:24 +01:00
ClickRaycaster.cs Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
ClickRaycaster.cs.meta Generating and Displaying Zones 2020-03-29 04:19:24 +01:00
ConfirmationDialog.cs Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
ConfirmationDialog.cs.meta Hauling Task 2020-06-12 01:57:15 +01:00
ConsoleController.cs Capture presets through their own cache; keep the catalog read-only 2026-09-14 23:32:52 +02:00
ConsoleController.cs.meta Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
ConsoleView.cs Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
ConsoleView.cs.meta Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
ContextMenu.cs Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
ContextMenu.cs.meta Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
ContextMenuOption.cs Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
ContextMenuOption.cs.meta Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
CorporationMenuItem.cs First Flight 2020-12-22 03:13:43 +00:00
CorporationMenuItem.cs.meta Corporation Creation Screen 2020-05-18 01:06:30 +01:00
DropdownMenu.cs Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
DropdownMenu.cs.meta Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
FieldTester.cs Delete AetheriaMath in favour of CultMath 2026-09-14 18:02:41 +02:00
FieldTester.cs.meta Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
HUD.meta In Game Input Screen 2021-05-08 07:35:16 +01:00
InputScreen.meta Dynamic Input System Rebinding 2021-05-07 23:31:39 +01:00
MainMenu.cs Land RunSave and the one-cache run and player lifecycle (Cut 10) 2026-09-14 22:00:27 +02:00
MainMenu.cs.meta Live Demo Tweaks 2021-04-09 14:01:34 +01:00
Menu.meta In Game Input Screen 2021-05-08 07:35:16 +01:00
Properties Panel.meta In Game Input Screen 2021-05-08 07:35:16 +01:00
SpriteCursor.cs Playability 2022-08-08 22:43:55 +01:00
SpriteCursor.cs.meta Playability 2022-08-08 22:43:55 +01:00
TextButton.cs Swap Unity.Mathematics usings for CultMath 2026-09-14 17:39:12 +02:00
TextButton.cs.meta Save/Load and Main Menu Submenus 2021-03-14 03:56:49 +00:00
ZoneGravityObject.cs First Flight 2020-12-22 03:13:43 +00:00
ZoneGravityObject.cs.meta Entity Spawning & Rendering 2020-05-25 03:05:30 +01:00
ZoneObject.cs First Flight 2020-12-22 03:13:43 +00:00
ZoneObject.cs.meta Entity Spawning & Rendering 2020-05-25 03:05:30 +01:00
ZoneShip.cs First Flight 2020-12-22 03:13:43 +00:00
ZoneShip.cs.meta Local AI Testing & Interactive Tech Tab 2020-04-23 03:31:17 +01:00