diff --git a/QSB/Events/DeathMessage.cs b/QSB/Events/DeathMessage.cs deleted file mode 100644 index cbd8b362..00000000 --- a/QSB/Events/DeathMessage.cs +++ /dev/null @@ -1,21 +0,0 @@ -using UnityEngine.Networking; - -namespace QSB.Events -{ - public class DeathMessage : PlayerMessage - { - public DeathType DeathType { get; set; } - - public override void Deserialize(NetworkReader reader) - { - base.Deserialize(reader); - DeathType = (DeathType)reader.ReadInt16(); - } - - public override void Serialize(NetworkWriter writer) - { - base.Serialize(writer); - writer.Write((short)DeathType); - } - } -} diff --git a/QSB/Events/EventList.cs b/QSB/Events/EventList.cs index ee7b5902..e9b78868 100644 --- a/QSB/Events/EventList.cs +++ b/QSB/Events/EventList.cs @@ -11,7 +11,8 @@ //new PlayerProbeEvent(); //new PlayerSectorChange(); new PlayerJoinEvent(); - //new PlayerLeaveEvent(); + new PlayerLeaveEvent(); + new PlayerDeathEvent(); } } } diff --git a/QSB/Events/PlayerDeathEvent.cs b/QSB/Events/PlayerDeathEvent.cs index 71d66338..c08c2146 100644 --- a/QSB/Events/PlayerDeathEvent.cs +++ b/QSB/Events/PlayerDeathEvent.cs @@ -3,11 +3,29 @@ using System.Collections.Generic; using System.Linq; using System.Text; using QSB.Messaging; +using QSB.Utility; namespace QSB.Events { class PlayerDeathEvent : QSBEvent { public override MessageType Type => MessageType.PlayerDeath; + + public override void SetupListener() + { + GlobalMessenger.AddListener("QSBPlayerDeath", type => SendEvent(new PlayerDeathMessage { SenderId = PlayerRegistry.LocalPlayer.NetId, DeathType = type })); + } + + public override void OnReceive(PlayerDeathMessage message) + { + var playerName = PlayerRegistry.GetPlayer(message.SenderId).Name; + var deathMessage = Necronomicon.GetPhrase(message.DeathType); + DebugLog.ToAll(string.Format(deathMessage, playerName)); + } + + public override void OnReceiveLocal(PlayerDeathMessage message) + { + OnReceive(message); + } } } diff --git a/QSB/Events/PlayerSectorEvent.cs b/QSB/Events/PlayerSectorEvent.cs new file mode 100644 index 00000000..36f979a2 --- /dev/null +++ b/QSB/Events/PlayerSectorEvent.cs @@ -0,0 +1,19 @@ +using QSB.Messaging; + +namespace QSB.Events +{ + class PlayerSectorEvent : QSBEvent + { + public override MessageType Type => MessageType.PlayerSectorChange; + + public override void SetupListener() + { + throw new System.NotImplementedException(); + } + + public override void OnReceive(SectorMessage message) + { + throw new System.NotImplementedException(); + } + } +} diff --git a/QSB/Messaging/PlayerDeathMessage.cs b/QSB/Messaging/PlayerDeathMessage.cs index 85b42aa4..4b6a1569 100644 --- a/QSB/Messaging/PlayerDeathMessage.cs +++ b/QSB/Messaging/PlayerDeathMessage.cs @@ -1,6 +1,6 @@ using UnityEngine.Networking; -namespace QSB.Events +namespace QSB.Messaging { public class PlayerDeathMessage : PlayerMessage { diff --git a/QSB/Messaging/PlayerJoinMessage.cs b/QSB/Messaging/PlayerJoinMessage.cs index 5c8d27c2..560f1706 100644 --- a/QSB/Messaging/PlayerJoinMessage.cs +++ b/QSB/Messaging/PlayerJoinMessage.cs @@ -1,6 +1,6 @@ using UnityEngine.Networking; -namespace QSB.Events +namespace QSB.Messaging { public class PlayerJoinMessage : PlayerMessage { diff --git a/QSB/Messaging/PlayerLeaveMessage.cs b/QSB/Messaging/PlayerLeaveMessage.cs index ec911a2e..a279a13e 100644 --- a/QSB/Messaging/PlayerLeaveMessage.cs +++ b/QSB/Messaging/PlayerLeaveMessage.cs @@ -2,7 +2,7 @@ using System.Linq; using UnityEngine.Networking; -namespace QSB.Events +namespace QSB.Messaging { public class PlayerLeaveMessage : PlayerMessage { diff --git a/QSB/Messaging/PlayerMessage.cs b/QSB/Messaging/PlayerMessage.cs index 7b745355..87acf00b 100644 --- a/QSB/Messaging/PlayerMessage.cs +++ b/QSB/Messaging/PlayerMessage.cs @@ -1,7 +1,7 @@ using QSB.Messaging; using UnityEngine.Networking; -namespace QSB.Events +namespace QSB.Messaging { public abstract class PlayerMessage : QSBMessage { diff --git a/QSB/TransformSync/SectorMessage.cs b/QSB/Messaging/SectorMessage.cs similarity index 64% rename from QSB/TransformSync/SectorMessage.cs rename to QSB/Messaging/SectorMessage.cs index 60d4635b..7a133d7e 100644 --- a/QSB/TransformSync/SectorMessage.cs +++ b/QSB/Messaging/SectorMessage.cs @@ -1,23 +1,20 @@ using QSB.Messaging; using UnityEngine.Networking; -namespace QSB.TransformSync +namespace QSB.Messaging { - public class SectorMessage : QSBMessage + public class SectorMessage : PlayerMessage { public int SectorId; - public uint SenderId; public override void Deserialize(NetworkReader reader) { SectorId = reader.ReadInt32(); - SenderId = reader.ReadPackedUInt32(); } public override void Serialize(NetworkWriter writer) { writer.Write(SectorId); - writer.Write(SenderId); } } } \ No newline at end of file diff --git a/QSB/Messaging/ToggleMessage.cs b/QSB/Messaging/ToggleMessage.cs index 455bef67..9e7d413c 100644 --- a/QSB/Messaging/ToggleMessage.cs +++ b/QSB/Messaging/ToggleMessage.cs @@ -1,6 +1,6 @@ using UnityEngine.Networking; -namespace QSB.Events +namespace QSB.Messaging { public class ToggleMessage : PlayerMessage { diff --git a/QSB/QSB.csproj b/QSB/QSB.csproj index 70dd167a..18ebc120 100644 --- a/QSB/QSB.csproj +++ b/QSB/QSB.csproj @@ -113,9 +113,12 @@ + + + @@ -135,7 +138,6 @@ - @@ -155,7 +157,7 @@ - + diff --git a/QSB/QSB.csproj.user b/QSB/QSB.csproj.user index 99a5eab9..41b05046 100644 --- a/QSB/QSB.csproj.user +++ b/QSB/QSB.csproj.user @@ -1,8 +1,8 @@  - C:\Program Files\Epic Games\OuterWilds - C:\Users\Alek\Documents\Source\OWML\Release + D:\EpicGames\OuterWilds + C:\Users\Henry\Downloads\OWModManager\OWML C:\Program Files\Epic Games\OuterWilds\OuterWilds_Data\Managed\ diff --git a/QSB/TimeSync/RespawnOnDeath.cs b/QSB/TimeSync/RespawnOnDeath.cs index e11a9804..49241849 100644 --- a/QSB/TimeSync/RespawnOnDeath.cs +++ b/QSB/TimeSync/RespawnOnDeath.cs @@ -32,8 +32,6 @@ namespace QSB.TimeSync private ShipCockpitController _cockpitController; private PlayerSpacesuit _spaceSuit; - private MessageHandler _deathHandler; - private void Awake() { _instance = this; @@ -74,10 +72,6 @@ namespace QSB.TimeSync _shipSpawnPoint.transform.position = shipTransform.position; _shipSpawnPoint.transform.rotation = shipTransform.rotation; } - - _deathHandler = new MessageHandler(MessageType.Death); - _deathHandler.OnServerReceiveMessage += OnServerReceiveMessage; - _deathHandler.OnClientReceiveMessage += OnClientReceiveMessage; } public void ResetShip() @@ -141,18 +135,6 @@ namespace QSB.TimeSync ); } - private void OnServerReceiveMessage(DeathMessage message) - { - _deathHandler.SendToAll(message); - } - - private void OnClientReceiveMessage(DeathMessage message) - { - var playerName = PlayerRegistry.GetPlayer(message.SenderId).Name; - var deathMessage = Necronomicon.GetPhrase(message.DeathType); - DebugLog.ToAll(string.Format(deathMessage, playerName)); - } - internal static class Patches { public static bool PreFinishDeathSequence(DeathType deathType) @@ -172,14 +154,8 @@ namespace QSB.TimeSync public static void BroadcastDeath(DeathType deathType) { - var message = new DeathMessage - { - SenderId = PlayerTransformSync.LocalInstance.netId.Value, - DeathType = deathType - }; - _instance._deathHandler.SendToServer(message); + GlobalMessenger.FireEvent("QSBPlayerDeath", deathType); } - } } }