46 lines
1.0 KiB
C#
Raw Normal View History

using QSB.Messaging;
2021-12-23 12:33:30 -08:00
using QSB.Player;
using QSB.Player.TransformSync;
using QSB.TimeSync;
2021-12-23 12:33:30 -08:00
using QSB.WorldSync;
2021-12-23 15:44:32 -08:00
namespace QSB.EyeOfTheUniverse.EyeStateSync.Messages
2021-12-23 12:33:30 -08:00
{
internal class EyeStateMessage : QSBEnumMessage<EyeState>
{
static EyeStateMessage() => GlobalMessenger<EyeState>.AddListener(OWEvents.EyeStateChanged, Handler);
private static void Handler(EyeState state)
{
2021-12-23 22:40:37 -08:00
if (PlayerTransformSync.LocalInstance)
{
new EyeStateMessage(state).Send();
}
}
2021-12-23 12:33:30 -08:00
2021-12-23 14:27:41 -08:00
private EyeStateMessage(EyeState state) => Value = state;
2021-12-23 12:33:30 -08:00
public override bool ShouldReceive => WorldObjectManager.AllObjectsReady;
public override void OnReceiveLocal()
{
QSBPlayerManager.LocalPlayer.EyeState = Value;
if (Value >= EyeState.ForestIsDark)
{
2022-01-01 00:22:18 -08:00
WakeUpSync.LocalInstance.EyeDisable = true;
}
2021-12-23 12:33:30 -08:00
}
public override void OnReceiveRemote()
{
var player = QSBPlayerManager.GetPlayer(From);
player.EyeState = Value;
if (Value >= EyeState.ForestIsDark)
{
2022-01-01 00:22:18 -08:00
WakeUpSync.LocalInstance.EyeDisable = true;
}
2021-12-23 12:33:30 -08:00
}
}
}