From a3e3dff725d89424399e7f3a56e85d1ee4bb3fc5 Mon Sep 17 00:00:00 2001 From: Mister_Nebula <41904486+misternebula@users.noreply.github.com> Date: Sat, 8 Aug 2020 13:27:49 +0100 Subject: [PATCH] more stuff --- QSB/Events/EventSender.cs | 2 +- QSB/Events/PlayerJoinEvent.cs | 5 ++- QSB/Events/PlayerProbeLauncherEvent.cs | 46 ++++++++++++++++++++++++++ QSB/Events/QSBEvent.cs | 7 ++-- QSB/QSB.csproj | 1 + 5 files changed, 54 insertions(+), 7 deletions(-) create mode 100644 QSB/Events/PlayerProbeLauncherEvent.cs diff --git a/QSB/Events/EventSender.cs b/QSB/Events/EventSender.cs index 7dc6b282..751ba738 100644 --- a/QSB/Events/EventSender.cs +++ b/QSB/Events/EventSender.cs @@ -16,7 +16,7 @@ namespace QSB.Events EventList.Add(new PlayerFlashlightEvent()); EventList.Add(new PlayerSignalscopeEvent()); EventList.Add(new PlayerTrasnlatorEvent()); - //EventList.Add(new PlayerProbeLauncherEvent()); + EventList.Add(new PlayerProbeLauncherEvent()); //EventList.Add(new PlayerProbeEvent()); //EventList.Add(new PlayerSectorChange()); EventList.Add(new PlayerJoinEvent()); diff --git a/QSB/Events/PlayerJoinEvent.cs b/QSB/Events/PlayerJoinEvent.cs index 78db6adf..185e64e3 100644 --- a/QSB/Events/PlayerJoinEvent.cs +++ b/QSB/Events/PlayerJoinEvent.cs @@ -22,7 +22,10 @@ namespace QSB.Events public override void OnReceiveLocal(object[] data) { - return; + var player = PlayerRegistry.CreatePlayer(PlayerTransformSync.LocalInstance.netId.Value); + player.Name = (string)data[0]; + player.IsReady = true; + DebugLog.ToAll($"{player.Name} joined!"); } } } diff --git a/QSB/Events/PlayerProbeLauncherEvent.cs b/QSB/Events/PlayerProbeLauncherEvent.cs new file mode 100644 index 00000000..f441d531 --- /dev/null +++ b/QSB/Events/PlayerProbeLauncherEvent.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace QSB.Events +{ + class PlayerProbeLauncherEvent : QSBEvent + { + public override EventType Type => EventType.ProbeLauncherActiveChange; + + public override void SetupListener() + { + GlobalMessenger.AddListener("ProbeLauncherEquipped", var => EventSender.SendEvent(this, PlayerRegistry.LocalPlayer.NetId, true)); + GlobalMessenger.AddListener("ProbeLauncherUnequipped", var => EventSender.SendEvent(this, PlayerRegistry.LocalPlayer.NetId, false)); + } + + public override void OnReceive(uint sender, object[] data) + { + var player = PlayerRegistry.GetPlayer(sender); + var tool = player.ProbeLauncher; + player.UpdateState(State.ProbeLauncher, (bool)data[0]); + if ((bool)data[0] == true) + { + tool.EquipTool(); + } + else + { + tool.UnequipTool(); + } + } + + public override void OnReceiveLocal(object[] data) + { + var tool = PlayerRegistry.LocalPlayer.ProbeLauncher; + if ((bool)data[0] == true) + { + tool.EquipTool(); + } + else + { + tool.UnequipTool(); + } + } + } +} diff --git a/QSB/Events/QSBEvent.cs b/QSB/Events/QSBEvent.cs index 531c2ecd..ed1721ba 100644 --- a/QSB/Events/QSBEvent.cs +++ b/QSB/Events/QSBEvent.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; +using QSB.Messaging; namespace QSB.Events { @@ -11,6 +8,6 @@ namespace QSB.Events public abstract void SetupListener(); public abstract void OnReceive(uint sender, object[] data); - public abstract void OnReceiveLocal(object[] data); + public virtual void OnReceiveLocal(object[] data) { } } } diff --git a/QSB/QSB.csproj b/QSB/QSB.csproj index d460c179..35fd915a 100644 --- a/QSB/QSB.csproj +++ b/QSB/QSB.csproj @@ -115,6 +115,7 @@ +