mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-10 12:39:53 +00:00
QSBAlarmTotem: set enabled
This commit is contained in:
parent
0fef22cbf1
commit
5d5944f020
@ -1,6 +1,5 @@
|
||||
using QSB.EchoesOfTheEye.AlarmTotemSync.WorldObjects;
|
||||
using QSB.Messaging;
|
||||
using QSB.Patches;
|
||||
|
||||
namespace QSB.EchoesOfTheEye.AlarmTotemSync.Messages;
|
||||
|
||||
@ -8,10 +7,6 @@ public class SetEnabledMessage : QSBWorldObjectMessage<QSBAlarmTotem, bool>
|
||||
{
|
||||
public SetEnabledMessage(bool data) : base(data) { }
|
||||
|
||||
public override void OnReceiveRemote()
|
||||
{
|
||||
if ()
|
||||
|
||||
QSBPatch.RemoteCall(() => WorldObject.AttachedObject.set(Data));
|
||||
}
|
||||
public override void OnReceiveRemote() =>
|
||||
WorldObject.SetEnabled(Data);
|
||||
}
|
||||
|
@ -9,5 +9,37 @@ public class QSBAlarmTotem : WorldObject<AlarmTotem>
|
||||
public override void SendInitialState(uint to)
|
||||
{
|
||||
this.SendMessage(new SetFaceOpenMessage(AttachedObject._isFaceOpen) { To = to });
|
||||
this.SendMessage(new SetEnabledMessage(AttachedObject.enabled) { To = to });
|
||||
}
|
||||
|
||||
public void SetEnabled(bool enabled)
|
||||
{
|
||||
if (AttachedObject.enabled == enabled)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!enabled &&
|
||||
AttachedObject._sector &&
|
||||
AttachedObject._sector.ContainsOccupant(DynamicOccupant.Player))
|
||||
{
|
||||
// local player is in sector, do not disable
|
||||
return;
|
||||
}
|
||||
|
||||
AttachedObject.enabled = enabled;
|
||||
|
||||
if (!enabled)
|
||||
{
|
||||
AttachedObject._pulseLightController.SetIntensity(0f);
|
||||
AttachedObject._simTotemMaterials[0] = AttachedObject._origSimEyeMaterial;
|
||||
AttachedObject._simTotemRenderer.sharedMaterials = AttachedObject._simTotemMaterials;
|
||||
AttachedObject._simVisionConeRenderer.SetColor(AttachedObject._simVisionConeRenderer.GetOriginalColor());
|
||||
if (AttachedObject._isPlayerVisible)
|
||||
{
|
||||
AttachedObject._isPlayerVisible = false;
|
||||
Locator.GetAlarmSequenceController().DecreaseAlarmCounter();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,12 +17,6 @@ internal class QSBLightSensor : WorldObject<SingleLightSensor>
|
||||
|
||||
public void SetEnabled(bool enabled)
|
||||
{
|
||||
if (AttachedObject._sector && AttachedObject._sector.ContainsAnyOccupants(DynamicOccupant.Player | DynamicOccupant.Probe))
|
||||
{
|
||||
// local player is in sector, do not disable lights
|
||||
return;
|
||||
}
|
||||
|
||||
if (enabled && !AttachedObject.enabled)
|
||||
{
|
||||
AttachedObject.enabled = true;
|
||||
@ -34,6 +28,13 @@ internal class QSBLightSensor : WorldObject<SingleLightSensor>
|
||||
}
|
||||
else if (!enabled && AttachedObject.enabled)
|
||||
{
|
||||
if (AttachedObject._sector &&
|
||||
AttachedObject._sector.ContainsAnyOccupants(DynamicOccupant.Player | DynamicOccupant.Probe))
|
||||
{
|
||||
// local player is in sector, do not disable
|
||||
return;
|
||||
}
|
||||
|
||||
AttachedObject.enabled = false;
|
||||
AttachedObject._lightDetector.GetShape().enabled = false;
|
||||
if (!AttachedObject._preserveStateWhileDisabled)
|
||||
|
Loading…
x
Reference in New Issue
Block a user