From 137c7180b68f8425c42e5e56674d7dda26d4ecb4 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Mon, 15 Jun 2026 22:47:15 +0100 Subject: [PATCH] Route graphics settings through typed commits --- .voidbot/state/aetheria.cc | Bin 139220 -> 139521 bytes Aetheria.State.Verify/Program.cs | 60 +++++++++++++++++++++++++++ Assets/Scripts/UI/MainMenu.cs | 20 ++++----- docs/aetheria-perfect-machine-map.md | 11 +++-- 4 files changed, 77 insertions(+), 14 deletions(-) diff --git a/.voidbot/state/aetheria.cc b/.voidbot/state/aetheria.cc index 81eea9c0beb21deea15e1ef15fbc226095add488..f7ef0a864e1a85e3561e5064d1d3e5ca18a9c11a 100644 GIT binary patch delta 1102 zcmaKsOKTKC5XYHOLe_(>nyiQ-g@RFVCvM1NlYkf{1P>C8#=v^&%+&6*&UCNSJqZy( zBzV!23^;e+hzB2s)srZm^x#E=;6eQW3Vr~=>Y1Hf6mLy;J%07Cs{Zu4_uAXurw{DX z@W{l_VP~vXPrq-scPAh0>)oq*ZOB|z61m}WZ*El|OMYz_waf2T4{q!n+-Pk%J$UXU z?BHW%pJcLT=5wMWUsnF!_}mAqw!Bf@U00=^-ZtHF}^W zOfRMEhSfK<_ISZ3BQ0asH;$B>IL&EYWCKXr5v1VsSmu z&TFe0K%;H7h)~T8(w_^~uB+`S&!Y+pv7O_Y?_4Z25AjTQZl;7cmrspp^b$tA$unj; zvK9h$bbS^E|DL*>hkB)b delta 953 zcmZXTziSjx5Xad~&`X-6NFsJqh!8Lr?-HX?iwi_UKr|kTaItx}J9qnJ_r3M~$Qhe6 zh?OAd5w=x{3RZS!s(@fAq!1*9e}t8-vwORT8rWv%eczk;er9IpOX>ST>C=06yt;U~ zx=_BbP-(n$rh8xA=S5`kd=`--k4w2`vG;3a$(=}^&W`qHN1ch=-P#J802OE8V~7TQ zpkI)o57#+{{vFf?71*`A>m+E}HpEO|2+W#5DsHyR@4S%l=;-H$l17^C80QB%PYR=C zs6hwP(sM!@h^%1-q0J(UL$(dF*?oYX(Uen3+YUgX@KK?f3#G?Gpf_VwhNIrdvT9H9 z*yt{g3Mgo!g&e}DkFUqG2v^F3I-XvnnyNdhD$-GK0=3^ z0Ps;9a*rEGA5l8saruKmp-FZ0qHcxZ5oIC=l&8f!F4_Y^R3DOzY($KUbD$+T;~MB= zzbZ4p z3VBN1w;uk}Kk`dPdC1f;rbV|hGN7#@Lr933pV2Fr0hQy21S4fP#Mmig-=`dzfk>Vaq(ccrx1*~X|M)wX+R+8W2?qsstaQtLv)44jCZ$qWh*fXrH zcav|MPP4yq-+B9aY$R-lb~tWX4T~ze{~M N<^C8eZY@_Ee*ofVQ ActionGameManager.RuntimePlayerSettings.GameplaySettings.SignificantDigits, i => ActionGameManager.RuntimePlayerSettings.GameplaySettings.SignificantDigits = i); _nextMenu.panel.AddButton("Back", - () => - { - ActionGameManager.QueueRuntimePlayerSettingsCommit(); - ShowSettings(); - Fade(false); - }); + CommitRuntimeSettingsAndReturn); } private void ShowGraphicsSettings() @@ -246,11 +241,7 @@ public class MainMenu : MonoBehaviour () => ActionGameManager.RuntimePlayerSettings.GraphicsSettings.ShowAsteroidsInMinimap, b => ActionGameManager.RuntimePlayerSettings.GraphicsSettings.ShowAsteroidsInMinimap = b); _nextMenu.panel.AddButton("Back", - () => - { - ShowSettings(); - Fade(false); - }); + CommitRuntimeSettingsAndReturn); } private void ShowInputSettings() @@ -276,4 +267,11 @@ public class MainMenu : MonoBehaviour Fade(false); }); } + + private void CommitRuntimeSettingsAndReturn() + { + ActionGameManager.QueueRuntimePlayerSettingsCommit(); + ShowSettings(); + Fade(false); + } } diff --git a/docs/aetheria-perfect-machine-map.md b/docs/aetheria-perfect-machine-map.md index 1b7e77b59..9da332346 100644 --- a/docs/aetheria-perfect-machine-map.md +++ b/docs/aetheria-perfect-machine-map.md @@ -87,9 +87,11 @@ legacy catalog cache, and legacy UI paths should be migration-only or deleted. name, tutorial flag, story-file hash cursors, gameplay formatting, graphics preferences, input binding overrides, and action-bar inputs. Unity's menu and input screens mutate `RuntimePlayerSettings` in memory and queue typed Verse - commits through shared player-settings commit primitives; the in-memory - projection is not portable state authority. Aetheria has its own remapping UI - that calls Unity's InputSystem at the binding/action layer; Unity's generated + commits through shared player-settings commit primitives. Gameplay and + graphics settings now return through the same main-menu commit primitive; the + in-memory projection is not portable state authority. Aetheria has its own + remapping UI that calls Unity's InputSystem at the binding/action layer; + Unity's generated `AetheriaInput` class is the edge consumer of typed binding overrides, not the durable owner. Binding drag/drop and action-bar remapping both route through named runtime input commit methods instead of writing the input @@ -1549,6 +1551,9 @@ First Aetheria surfaces to publish: - Done: route input-screen binding/action-bar edits through named typed player-settings commit methods on the Unity runtime boundary, so the UI is no longer a direct writer of input binding or action-bar collections. + - Done: route main-menu graphics settings returns through the same typed + player-settings commit primitive as gameplay settings, so graphics edits + no longer survive only as session-local `RuntimePlayerSettings`. - Remaining: delete or quarantine old cache abstractions that no longer protect an invariant once catalog migration has a typed reader.