From c5eef09cac283ffb5509d76d52277a3bafd3c5e1 Mon Sep 17 00:00:00 2001 From: JohnCorby Date: Fri, 27 May 2022 19:11:04 -0700 Subject: [PATCH] rename --- .../Messages/LightSensorIlluminatedMessage.cs | 22 ------------------- .../Messages/SetIlluminatedMessage.cs | 11 ++++++++++ .../Patches/LightSensorPatches.cs | 14 ++---------- .../WorldObjects/QSBLightSensor.cs | 17 ++++++++++++-- 4 files changed, 28 insertions(+), 36 deletions(-) delete mode 100644 QSB/EchoesOfTheEye/LightSensorSync/Messages/LightSensorIlluminatedMessage.cs create mode 100644 QSB/EchoesOfTheEye/LightSensorSync/Messages/SetIlluminatedMessage.cs diff --git a/QSB/EchoesOfTheEye/LightSensorSync/Messages/LightSensorIlluminatedMessage.cs b/QSB/EchoesOfTheEye/LightSensorSync/Messages/LightSensorIlluminatedMessage.cs deleted file mode 100644 index ef91cb91..00000000 --- a/QSB/EchoesOfTheEye/LightSensorSync/Messages/LightSensorIlluminatedMessage.cs +++ /dev/null @@ -1,22 +0,0 @@ -using QSB.EchoesOfTheEye.LightSensorSync.WorldObjects; -using QSB.Messaging; - -namespace QSB.EchoesOfTheEye.LightSensorSync.Messages; - -internal class LightSensorIlluminatedMessage : QSBWorldObjectMessage -{ - public LightSensorIlluminatedMessage(bool illuminated) : base(illuminated) { } - public override void OnReceiveLocal() => OnReceiveRemote(); - - public override void OnReceiveRemote() - { - if (Data) - { - WorldObject._illuminatedBy.SafeAdd(From); - } - else - { - WorldObject._illuminatedBy.QuickRemove(From); - } - } -} diff --git a/QSB/EchoesOfTheEye/LightSensorSync/Messages/SetIlluminatedMessage.cs b/QSB/EchoesOfTheEye/LightSensorSync/Messages/SetIlluminatedMessage.cs new file mode 100644 index 00000000..c4407f0c --- /dev/null +++ b/QSB/EchoesOfTheEye/LightSensorSync/Messages/SetIlluminatedMessage.cs @@ -0,0 +1,11 @@ +using QSB.EchoesOfTheEye.LightSensorSync.WorldObjects; +using QSB.Messaging; + +namespace QSB.EchoesOfTheEye.LightSensorSync.Messages; + +internal class SetIlluminatedMessage : QSBWorldObjectMessage +{ + public SetIlluminatedMessage(bool illuminated) : base(illuminated) { } + public override void OnReceiveLocal() => OnReceiveRemote(); + public override void OnReceiveRemote() => WorldObject.SetIlluminated(From, Data); +} diff --git a/QSB/EchoesOfTheEye/LightSensorSync/Patches/LightSensorPatches.cs b/QSB/EchoesOfTheEye/LightSensorSync/Patches/LightSensorPatches.cs index 00c052fa..f15b1b37 100644 --- a/QSB/EchoesOfTheEye/LightSensorSync/Patches/LightSensorPatches.cs +++ b/QSB/EchoesOfTheEye/LightSensorSync/Patches/LightSensorPatches.cs @@ -48,21 +48,11 @@ internal class LightSensorPatches : QSBPatch if (!clientIlluminated && qsbLightSensor._clientIlluminated) { - qsbLightSensor.SendMessage(new LightSensorIlluminatedMessage(true)); + qsbLightSensor.SendMessage(new SetIlluminatedMessage(true)); } else if (clientIlluminated && !qsbLightSensor._clientIlluminated) { - qsbLightSensor.SendMessage(new LightSensorIlluminatedMessage(false)); - } - - var illuminated = __instance._illuminated; - if (!illuminated && __instance._illuminated) - { - __instance.OnDetectLight.Invoke(); - } - else if (illuminated && !__instance._illuminated) - { - __instance.OnDetectDarkness.Invoke(); + qsbLightSensor.SendMessage(new SetIlluminatedMessage(false)); } return false; diff --git a/QSB/EchoesOfTheEye/LightSensorSync/WorldObjects/QSBLightSensor.cs b/QSB/EchoesOfTheEye/LightSensorSync/WorldObjects/QSBLightSensor.cs index 3f6ec62d..5f2680f7 100644 --- a/QSB/EchoesOfTheEye/LightSensorSync/WorldObjects/QSBLightSensor.cs +++ b/QSB/EchoesOfTheEye/LightSensorSync/WorldObjects/QSBLightSensor.cs @@ -15,7 +15,7 @@ internal class QSBLightSensor : WorldObject public Action OnDetectLocalDarkness; internal bool _clientIlluminated; - internal List _illuminatedBy; + private readonly List _illuminatedBy = new(); public override void SendInitialState(uint to) { } @@ -23,5 +23,18 @@ internal class QSBLightSensor : WorldObject public override void OnRemoval() => QSBPlayerManager.OnRemovePlayer -= OnPlayerLeave; private void OnPlayerLeave(PlayerInfo player) => - _illuminatedBy.QuickRemove(player.PlayerId); + SetIlluminated(player.PlayerId, false); + + public void SetIlluminated(uint playerId, bool illuminated) + { + // var illuminated = __instance._illuminated; + // if (!illuminated && __instance._illuminated) + // { + // __instance.OnDetectLight.Invoke(); + // } + // else if (illuminated && !__instance._illuminated) + // { + // __instance.OnDetectDarkness.Invoke(); + // } + } }