mirror of
https://github.com/DeltaV-Station/Delta-v.git
synced 2026-09-29 23:57:29 +00:00
Content update for UI prediction (#27214)
* Content update for UI refactor
* Big update
* Sharing
* Remaining content updates
* First big update
* Prototype updates
* AUGH
* Fix UI comp ref
* Cleanup
- Fix predicted message, fix item slots, fix interaction range check.
* Fix regressions
* Make this predictive
idk why it wasn't.
* Fix slime merge
* Merge conflict
* Fix merge
(cherry picked from commit 5896e68752)
This commit is contained in:
@@ -18,27 +18,26 @@ public sealed partial class SensorMonitoringConsoleSystem
|
||||
|
||||
private void UpdateConsoleUI(EntityUid uid, SensorMonitoringConsoleComponent comp)
|
||||
{
|
||||
if (!_userInterface.TryGetUi(uid, SensorMonitoringConsoleUiKey.Key, out var ui))
|
||||
return;
|
||||
|
||||
if (ui.SubscribedSessions.Count == 0)
|
||||
if (!_userInterface.IsUiOpen(uid, SensorMonitoringConsoleUiKey.Key))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ConsoleUIState? fullState = null;
|
||||
SensorMonitoringIncrementalUpdate? incrementalUpdate = null;
|
||||
|
||||
foreach (var session in ui.SubscribedSessions)
|
||||
foreach (var actorUid in _userInterface.GetActors(uid, SensorMonitoringConsoleUiKey.Key))
|
||||
{
|
||||
if (comp.InitialUIStateSent.Contains(session))
|
||||
if (comp.InitialUIStateSent.Contains(actorUid))
|
||||
{
|
||||
incrementalUpdate ??= CalculateIncrementalUpdate();
|
||||
_userInterface.TrySendUiMessage(ui, incrementalUpdate, session);
|
||||
_userInterface.ServerSendUiMessage(uid, SensorMonitoringConsoleUiKey.Key, incrementalUpdate, actorUid);
|
||||
}
|
||||
else
|
||||
{
|
||||
fullState ??= CalculateFullState();
|
||||
_userInterface.SetUiState(ui, fullState, session);
|
||||
comp.InitialUIStateSent.Add(session);
|
||||
_userInterface.SetUiState(uid, SensorMonitoringConsoleUiKey.Key, fullState);
|
||||
comp.InitialUIStateSent.Add(actorUid);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -131,9 +130,6 @@ public sealed partial class SensorMonitoringConsoleSystem
|
||||
if (!args.UiKey.Equals(SensorMonitoringConsoleUiKey.Key))
|
||||
return;
|
||||
|
||||
if (args.Session is not { } player)
|
||||
return;
|
||||
|
||||
component.InitialUIStateSent.Remove(player);
|
||||
component.InitialUIStateSent.Remove(args.Actor);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user