From d3b08df89c759389b7d5532bcfc1afbf8be561d5 Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Fri, 1 Apr 2022 21:38:33 -0700 Subject: [PATCH] baba booey --- .../Messages/SetVisibleMessage.cs | 8 +++++--- .../Messages/VisibleForMessage.cs | 19 ------------------- .../Patches/AlarmTotemPatches.cs | 6 ++++-- .../WorldObjects/QSBAlarmTotem.cs | 13 ++++++++----- 4 files changed, 17 insertions(+), 29 deletions(-) delete mode 100644 QSB/EchoesOfTheEye/AlarmTotemSync/Messages/VisibleForMessage.cs diff --git a/QSB/EchoesOfTheEye/AlarmTotemSync/Messages/SetVisibleMessage.cs b/QSB/EchoesOfTheEye/AlarmTotemSync/Messages/SetVisibleMessage.cs index 9f7eff3a..13413f77 100644 --- a/QSB/EchoesOfTheEye/AlarmTotemSync/Messages/SetVisibleMessage.cs +++ b/QSB/EchoesOfTheEye/AlarmTotemSync/Messages/SetVisibleMessage.cs @@ -1,11 +1,13 @@ using QSB.EchoesOfTheEye.AlarmTotemSync.WorldObjects; using QSB.Messaging; +using QSB.Player; namespace QSB.EchoesOfTheEye.AlarmTotemSync.Messages; -public class SetVisibleMessage : QSBWorldObjectMessage +public class SetVisibleMessage : QSBWorldObjectMessage { - public SetVisibleMessage(bool visible) : base(visible) { } + public SetVisibleMessage(bool visible) : base((QSBPlayerManager.LocalPlayerId, visible)) { } + public SetVisibleMessage(uint playerId, bool visible) : base((playerId, visible)) { } public override void OnReceiveLocal() => OnReceiveRemote(); - public override void OnReceiveRemote() => WorldObject.SetVisible(From, Data); + public override void OnReceiveRemote() => WorldObject.SetVisible(Data.playerId, Data.visible); } diff --git a/QSB/EchoesOfTheEye/AlarmTotemSync/Messages/VisibleForMessage.cs b/QSB/EchoesOfTheEye/AlarmTotemSync/Messages/VisibleForMessage.cs deleted file mode 100644 index 3047a1e7..00000000 --- a/QSB/EchoesOfTheEye/AlarmTotemSync/Messages/VisibleForMessage.cs +++ /dev/null @@ -1,19 +0,0 @@ -using QSB.EchoesOfTheEye.AlarmTotemSync.WorldObjects; -using QSB.Messaging; -using System.Collections.Generic; - -namespace QSB.EchoesOfTheEye.AlarmTotemSync.Messages; - -/// -/// sent by host on initial state -/// -public class VisibleForMessage : QSBWorldObjectMessage> -{ - public VisibleForMessage(List visibleFor) : base(visibleFor) { } - - public override void OnReceiveRemote() - { - WorldObject.VisibleFor.Clear(); - WorldObject.VisibleFor.AddRange(Data); - } -} diff --git a/QSB/EchoesOfTheEye/AlarmTotemSync/Patches/AlarmTotemPatches.cs b/QSB/EchoesOfTheEye/AlarmTotemSync/Patches/AlarmTotemPatches.cs index cf84fc64..1d134b37 100644 --- a/QSB/EchoesOfTheEye/AlarmTotemSync/Patches/AlarmTotemPatches.cs +++ b/QSB/EchoesOfTheEye/AlarmTotemSync/Patches/AlarmTotemPatches.cs @@ -75,7 +75,8 @@ public class AlarmTotemPatches : QSBPatch if (QSBWorldSync.AllObjectsReady) { - __instance.GetWorldObject().SendMessage(new SetVisibleMessage(true)); + __instance.GetWorldObject() + .SendMessage(new SetVisibleMessage(true)); } } else if (isPlayerVisible && !__instance._isPlayerVisible) @@ -88,7 +89,8 @@ public class AlarmTotemPatches : QSBPatch if (QSBWorldSync.AllObjectsReady) { - __instance.GetWorldObject().SendMessage(new SetVisibleMessage(false)); + __instance.GetWorldObject() + .SendMessage(new SetVisibleMessage(false)); } } diff --git a/QSB/EchoesOfTheEye/AlarmTotemSync/WorldObjects/QSBAlarmTotem.cs b/QSB/EchoesOfTheEye/AlarmTotemSync/WorldObjects/QSBAlarmTotem.cs index cf735e55..2765b458 100644 --- a/QSB/EchoesOfTheEye/AlarmTotemSync/WorldObjects/QSBAlarmTotem.cs +++ b/QSB/EchoesOfTheEye/AlarmTotemSync/WorldObjects/QSBAlarmTotem.cs @@ -11,13 +11,16 @@ namespace QSB.EchoesOfTheEye.AlarmTotemSync.WorldObjects; public class QSBAlarmTotem : WorldObject { - public readonly List VisibleFor = new(); + private readonly List _visibleFor = new(); public override void SendInitialState(uint to) { this.SendMessage(new SetFaceOpenMessage(AttachedObject._isFaceOpen) { To = to }); this.SendMessage(new SetEnabledMessage(AttachedObject.enabled) { To = to }); - this.SendMessage(new VisibleForMessage(VisibleFor) { To = to }); + foreach (var playerId in _visibleFor) + { + this.SendMessage(new SetVisibleMessage(playerId, true)); + } } public override async UniTask Init(CancellationToken ct) @@ -37,17 +40,17 @@ public class QSBAlarmTotem : WorldObject QSBPlayerManager.OnRemovePlayer -= OnPlayerLeave; private void OnPlayerLeave(PlayerInfo player) => - VisibleFor.QuickRemove(player.PlayerId); + _visibleFor.QuickRemove(player.PlayerId); public void SetVisible(uint playerId, bool visible) { if (visible) { - VisibleFor.SafeAdd(playerId); + _visibleFor.SafeAdd(playerId); } else { - VisibleFor.QuickRemove(playerId); + _visibleFor.QuickRemove(playerId); } }