mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-21 09:39:56 +00:00
rename
This commit is contained in:
parent
4bc32dd66e
commit
c5eef09cac
@ -1,22 +0,0 @@
|
||||
using QSB.EchoesOfTheEye.LightSensorSync.WorldObjects;
|
||||
using QSB.Messaging;
|
||||
|
||||
namespace QSB.EchoesOfTheEye.LightSensorSync.Messages;
|
||||
|
||||
internal class LightSensorIlluminatedMessage : QSBWorldObjectMessage<QSBLightSensor, bool>
|
||||
{
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
using QSB.EchoesOfTheEye.LightSensorSync.WorldObjects;
|
||||
using QSB.Messaging;
|
||||
|
||||
namespace QSB.EchoesOfTheEye.LightSensorSync.Messages;
|
||||
|
||||
internal class SetIlluminatedMessage : QSBWorldObjectMessage<QSBLightSensor, bool>
|
||||
{
|
||||
public SetIlluminatedMessage(bool illuminated) : base(illuminated) { }
|
||||
public override void OnReceiveLocal() => OnReceiveRemote();
|
||||
public override void OnReceiveRemote() => WorldObject.SetIlluminated(From, Data);
|
||||
}
|
@ -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;
|
||||
|
@ -15,7 +15,7 @@ internal class QSBLightSensor : WorldObject<SingleLightSensor>
|
||||
public Action OnDetectLocalDarkness;
|
||||
|
||||
internal bool _clientIlluminated;
|
||||
internal List<uint> _illuminatedBy;
|
||||
private readonly List<uint> _illuminatedBy = new();
|
||||
|
||||
public override void SendInitialState(uint to) { }
|
||||
|
||||
@ -23,5 +23,18 @@ internal class QSBLightSensor : WorldObject<SingleLightSensor>
|
||||
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();
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user