quantum-space-buddies/QSB/ProbeSync/Events/ProbeStartRetrieveEvent.cs

38 lines
994 B
C#
Raw Normal View History

2021-07-04 22:34:31 +01:00
using QSB.Events;
using QSB.Messaging;
using QSB.Player;
namespace QSB.ProbeSync.Events
{
2021-07-12 22:02:50 +01:00
internal class ProbeStartRetrieveEvent : QSBEvent<FloatMessage>
2021-07-04 22:34:31 +01:00
{
public override EventType Type => EventType.ProbeStartRetrieve;
2021-07-07 09:02:23 +01:00
public override void SetupListener()
2021-07-04 23:15:53 +01:00
=> GlobalMessenger<float>.AddListener(EventNames.QSBProbeStartRetrieve, Handler);
2021-07-04 22:34:31 +01:00
2021-07-07 09:02:23 +01:00
public override void CloseListener()
2021-07-04 23:15:53 +01:00
=> GlobalMessenger<float>.RemoveListener(EventNames.QSBProbeStartRetrieve, Handler);
2021-07-04 22:34:31 +01:00
private void Handler(float duration) => SendEvent(CreateMessage(duration));
private FloatMessage CreateMessage(float duration) => new FloatMessage
{
AboutId = LocalPlayerId,
Value = duration
};
public override void OnReceiveRemote(bool server, FloatMessage message)
{
var player = QSBPlayerManager.GetPlayer(message.AboutId);
2021-09-14 20:59:48 +01:00
if (!player.PlayerStates.IsReady || player.Probe == null)
{
return;
}
2021-07-04 22:34:31 +01:00
var probe = player.Probe;
probe.OnStartRetrieve(message.Value);
}
}
}