From 3070dc76106311828a55ef493974ed31e0cefe1a Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sun, 28 Jun 2026 08:52:56 +0100 Subject: [PATCH] Use reactive player settings in input screen --- Aetheria.State.Verify/Program.cs | 5 ++++- .../Scripts/UI/InputScreen/InputDisplayLayout.cs | 14 +++++++++----- Assets/Scripts/Zone Display/VolumeCloudRenderer.cs | 2 +- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Aetheria.State.Verify/Program.cs b/Aetheria.State.Verify/Program.cs index c9c8c74df..6edb340b5 100644 --- a/Aetheria.State.Verify/Program.cs +++ b/Aetheria.State.Verify/Program.cs @@ -4178,7 +4178,10 @@ static void RequireRuntimeInputScreenUsesEveSurface(string root) "AetheriaUnityRuntimeClientProvider.ResolveClient(", ".Aetheria()", ".Settings", - ".LatestPlayer()", + ".ReactivePlayer()", + "CultMeshReactiveDocument _playerSettings", + "_playerSettings?.Dispose()", + "_playerSettings?.Current", "action.ApplyBindingOverride", "new InputAction(\"Aetheria Input Capture\")", "AetheriaRuntimeInputSettingsSurfaceBuilder.IsSupportedCapturePath(", diff --git a/Assets/Scripts/UI/InputScreen/InputDisplayLayout.cs b/Assets/Scripts/UI/InputScreen/InputDisplayLayout.cs index ab63714fe..1615a2998 100644 --- a/Assets/Scripts/UI/InputScreen/InputDisplayLayout.cs +++ b/Assets/Scripts/UI/InputScreen/InputDisplayLayout.cs @@ -4,6 +4,7 @@ using System.Linq; using GameCult.Aetheria.EveRuntime; using GameCult.Aetheria.State.Verse; using GameCult.Eve.Surface; +using GameCult.Mesh; using UnityEngine; using UnityEngine.InputSystem; using UnityEngine.InputSystem.Utilities; @@ -14,7 +15,7 @@ public class InputDisplayLayout : MonoBehaviour private UIDocument _surfaceDocument; private AetheriaInput _ownedInput; private string _clientStatePath = ""; - private AetheriaRuntimePlayerSettingsDocument _playerSettings; + private CultMeshReactiveDocument _playerSettings; private InputAction _captureAction; private InputActionAsset _input; private string _captureActionName = ""; @@ -94,6 +95,8 @@ public class InputDisplayLayout : MonoBehaviour _ownedInput?.Dispose(); _ownedInput = null; + ClearClientCaches(); + if (_surfaceDocument != null) { AetheriaEveUnitySurfaceHost.DestroyDocument(_surfaceDocument); @@ -378,27 +381,28 @@ public class InputDisplayLayout : MonoBehaviour private void ClearClientCaches() { + _playerSettings?.Dispose(); _playerSettings = null; } private AetheriaRuntimePlayerSettingsDocument ResolvePlayerSettings() { if (_playerSettings != null) - return _playerSettings; + return _playerSettings.Current; try { _playerSettings = ResolveClient() .Aetheria() .Settings - .LatestPlayer(); + .ReactivePlayer(); } catch (Exception ex) { - Debug.LogWarning($"Failed to read Aetheria player settings for input screen: {ex.Message}"); + Debug.LogWarning($"Failed to bind Aetheria player settings for input screen: {ex.Message}"); } - return _playerSettings; + return _playerSettings?.Current; } private void ClearCapture() diff --git a/Assets/Scripts/Zone Display/VolumeCloudRenderer.cs b/Assets/Scripts/Zone Display/VolumeCloudRenderer.cs index cc49a03af..77eb5224c 100644 --- a/Assets/Scripts/Zone Display/VolumeCloudRenderer.cs +++ b/Assets/Scripts/Zone Display/VolumeCloudRenderer.cs @@ -97,7 +97,7 @@ public class VolumeCloudRenderer : EffectBase private AetheriaRuntimePlayerSettingsDocument ResolvePlayerSettings() { if (_playerSettings != null) - return _playerSettings; + return _playerSettings.Current; try {