mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-01-29 00:32:43 +00:00
44 lines
1.4 KiB
C#
44 lines
1.4 KiB
C#
using QSB.Messaging;
|
|
using QSB.Utility;
|
|
using QSB.WorldSync;
|
|
|
|
namespace QSB.EyeOfTheUniverse.Tomb.Messages;
|
|
|
|
public class ToggleLitStateMessage : QSBMessage<(int stateIndex, int direction, bool wasLit)>
|
|
{
|
|
public ToggleLitStateMessage(int currentStateIndex, int direction, bool wasLit) : base((currentStateIndex, direction, wasLit)) { }
|
|
|
|
public override void OnReceiveRemote()
|
|
{
|
|
var tomb = QSBWorldSync.GetUnityObject<EyeTombController>();
|
|
|
|
if (tomb._stateIndex != Data.stateIndex)
|
|
{
|
|
DebugLog.ToConsole($"Warning - Received ToggleLitStateMessage with stateIndex of {Data.stateIndex}, but is currently {tomb._stateIndex}. Correcting...");
|
|
tomb._states[tomb._stateIndex].SetActive(false);
|
|
tomb._stateIndex = Data.stateIndex;
|
|
}
|
|
|
|
if (tomb._lit != Data.wasLit)
|
|
{
|
|
DebugLog.ToConsole($"Warning - Received ToggleLitStateMessage, and the value of lit did not match. Correcting...");
|
|
tomb._lit = Data.wasLit;
|
|
}
|
|
|
|
tomb._lit = !tomb._lit;
|
|
tomb._planetLightController.SetIntensity(tomb._lit ? 1f : 0f);
|
|
tomb._planetObject.SetActive(tomb._lit);
|
|
tomb._lightBeamController.SetFade(tomb._lit ? 1f : 0f);
|
|
|
|
if (!tomb._lit)
|
|
{
|
|
tomb._states[tomb._stateIndex].SetActive(false);
|
|
tomb._stateIndex += Data.direction;
|
|
tomb._states[tomb._stateIndex].SetActive(true);
|
|
}
|
|
|
|
tomb._gearEffects.AddRotation(Data.direction * 45f, 0f);
|
|
tomb._oneShotSource.PlayOneShot((Data.direction > 0f) ? AudioType.Projector_Next : AudioType.Projector_Prev, 1f);
|
|
}
|
|
}
|