quantum-space-buddies/QSB/EyeOfTheUniverse/EyeStateSync/Messages/EyeStateMessage.cs

34 lines
844 B
C#
Raw Normal View History

using QSB.Messaging;
2021-12-23 20:33:30 +00:00
using QSB.Player;
using QSB.Player.TransformSync;
2021-12-23 20:33:30 +00:00
using QSB.WorldSync;
2022-03-03 03:46:33 +00:00
namespace QSB.EyeOfTheUniverse.EyeStateSync.Messages;
/// <summary>
/// todo SendInitialState
/// </summary>
2023-07-28 18:30:57 +00:00
public class EyeStateMessage : QSBMessage<EyeState>
2021-12-23 20:33:30 +00:00
{
2022-03-03 03:46:33 +00:00
static EyeStateMessage() => GlobalMessenger<EyeState>.AddListener(OWEvents.EyeStateChanged, Handler);
2022-03-03 03:46:33 +00:00
private static void Handler(EyeState state)
{
if (PlayerTransformSync.LocalInstance)
{
2022-03-03 03:46:33 +00:00
new EyeStateMessage(state).Send();
}
2022-03-03 03:46:33 +00:00
}
2021-12-23 20:33:30 +00:00
2022-03-11 01:57:50 +00:00
private EyeStateMessage(EyeState state) : base(state) { }
2021-12-23 20:33:30 +00:00
2022-03-03 03:46:33 +00:00
public override bool ShouldReceive => QSBWorldSync.AllObjectsReady;
2021-12-23 20:33:30 +00:00
2022-03-03 03:46:33 +00:00
public override void OnReceiveLocal() => QSBPlayerManager.LocalPlayer.EyeState = Data;
2021-12-23 20:33:30 +00:00
2022-03-03 03:46:33 +00:00
public override void OnReceiveRemote()
{
var player = QSBPlayerManager.GetPlayer(From);
player.EyeState = Data;
2021-12-23 20:33:30 +00:00
}
}