more stuff

This commit is contained in:
Mister_Nebula 2020-08-09 12:38:35 +01:00
parent 9b98a2fff5
commit 90e7a662b0
13 changed files with 53 additions and 61 deletions

View File

@ -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);
}
}
}

View File

@ -11,7 +11,8 @@
//new PlayerProbeEvent();
//new PlayerSectorChange();
new PlayerJoinEvent();
//new PlayerLeaveEvent();
new PlayerLeaveEvent();
new PlayerDeathEvent();
}
}
}

View File

@ -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<PlayerDeathMessage>
{
public override MessageType Type => MessageType.PlayerDeath;
public override void SetupListener()
{
GlobalMessenger<DeathType>.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);
}
}
}

View File

@ -0,0 +1,19 @@
using QSB.Messaging;
namespace QSB.Events
{
class PlayerSectorEvent : QSBEvent<SectorMessage>
{
public override MessageType Type => MessageType.PlayerSectorChange;
public override void SetupListener()
{
throw new System.NotImplementedException();
}
public override void OnReceive(SectorMessage message)
{
throw new System.NotImplementedException();
}
}
}

View File

@ -1,6 +1,6 @@
using UnityEngine.Networking;
namespace QSB.Events
namespace QSB.Messaging
{
public class PlayerDeathMessage : PlayerMessage
{

View File

@ -1,6 +1,6 @@
using UnityEngine.Networking;
namespace QSB.Events
namespace QSB.Messaging
{
public class PlayerJoinMessage : PlayerMessage
{

View File

@ -2,7 +2,7 @@
using System.Linq;
using UnityEngine.Networking;
namespace QSB.Events
namespace QSB.Messaging
{
public class PlayerLeaveMessage : PlayerMessage
{

View File

@ -1,7 +1,7 @@
using QSB.Messaging;
using UnityEngine.Networking;
namespace QSB.Events
namespace QSB.Messaging
{
public abstract class PlayerMessage : QSBMessage
{

View File

@ -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);
}
}
}

View File

@ -1,6 +1,6 @@
using UnityEngine.Networking;
namespace QSB.Events
namespace QSB.Messaging
{
public class ToggleMessage : PlayerMessage
{

View File

@ -113,9 +113,12 @@
<Compile Include="Animation\AnimFloatParam.cs" />
<Compile Include="Animation\AnimTriggerMessage.cs" />
<Compile Include="Animation\AnimTrigger.cs" />
<Compile Include="Events\PlayerDeathEvent.cs" />
<Compile Include="Events\PlayerFlashlightEvent.cs" />
<Compile Include="Events\PlayerJoinEvent.cs" />
<Compile Include="Events\PlayerLeaveEvent.cs" />
<Compile Include="Events\PlayerSectorEvent.cs" />
<Compile Include="Messaging\PlayerDeathMessage.cs" />
<Compile Include="Messaging\PlayerLeaveMessage.cs" />
<Compile Include="Events\PlayerProbeLauncherEvent.cs" />
<Compile Include="Events\PlayerSignalscopeEvent.cs" />
@ -135,7 +138,6 @@
<Compile Include="Events\GameState.cs" />
<Compile Include="Events\Necronomicon.cs" />
<Compile Include="Utility\DebugLog.cs" />
<Compile Include="Events\DeathMessage.cs" />
<Compile Include="Messaging\PlayerMessage.cs" />
<Compile Include="Events\StateRequestMessage.cs" />
<Compile Include="Messaging\MessageHandler.cs" />
@ -155,7 +157,7 @@
<Compile Include="TimeSync\PreserveTimeScale.cs" />
<Compile Include="TransformSync\ShipTransformSync.cs" />
<Compile Include="TransformSync\TransformSync.cs" />
<Compile Include="TransformSync\SectorMessage.cs" />
<Compile Include="Messaging\SectorMessage.cs" />
<Compile Include="TransformSync\SectorSync.cs" />
<Compile Include="TimeSync\WakeUpMessage.cs" />
<Compile Include="TimeSync\WakeUpSync.cs" />

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<GameDir>C:\Program Files\Epic Games\OuterWilds</GameDir>
<OwmlDir>C:\Users\Alek\Documents\Source\OWML\Release</OwmlDir>
<GameDir>D:\EpicGames\OuterWilds</GameDir>
<OwmlDir>C:\Users\Henry\Downloads\OWModManager\OWML</OwmlDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<StartWorkingDirectory>C:\Program Files\Epic Games\OuterWilds\OuterWilds_Data\Managed\</StartWorkingDirectory>

View File

@ -32,8 +32,6 @@ namespace QSB.TimeSync
private ShipCockpitController _cockpitController;
private PlayerSpacesuit _spaceSuit;
private MessageHandler<DeathMessage> _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<DeathMessage>(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<DeathType>.FireEvent("QSBPlayerDeath", deathType);
}
}
}
}