Alek/simplify name messages (#88)

* Showing player markers

* Marker above head

* Use player name on marker

* Sync full state on init

* Sync game state on start

* removed name from death and leave message

Co-authored-by: Ricardo Lopes <raicuparta@gmail.com>
This commit is contained in:
AmazingAlek 2020-05-19 20:05:15 +02:00 committed by GitHub
parent 170769cefa
commit 485698e93b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 25 additions and 14 deletions

View File

@ -3,7 +3,7 @@ using UnityEngine.Networking;
namespace QSB.Events
{
public class DeathMessage : NameMessage
public class DeathMessage : PlayerMessage
{
public override MessageType MessageType => MessageType.Death;

View File

@ -6,7 +6,7 @@ using UnityEngine.Networking;
namespace QSB.Events
{
class FullStateMessage : NameMessage
public class FullStateMessage : PlayerMessage
{
public override MessageType MessageType => MessageType.FullState;

View File

@ -1,9 +1,24 @@
using QSB.Messaging;
using UnityEngine.Networking;
namespace QSB.Events
{
public class JoinMessage : NameMessage
public class JoinMessage : PlayerMessage
{
public override MessageType MessageType => MessageType.Join;
public string PlayerName { get; set; }
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
PlayerName = reader.ReadString();
}
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(PlayerName);
}
}
}

View File

@ -5,7 +5,7 @@ using UnityEngine.Networking;
namespace QSB.Events
{
public class LeaveMessage : NameMessage
public class LeaveMessage : PlayerMessage
{
public override MessageType MessageType => MessageType.Leave;

View File

@ -19,7 +19,6 @@ namespace QSB.Events
{
var message = new LeaveMessage
{
PlayerName = PlayerJoin.PlayerNames[playerId],
SenderId = playerId,
ObjectIds = objectIds
};
@ -28,7 +27,8 @@ namespace QSB.Events
private void OnClientReceiveMessage(LeaveMessage message)
{
DebugLog.All(message.PlayerName, "left");
var playerName = PlayerJoin.PlayerNames[message.SenderId];
DebugLog.All(playerName, "left");
PlayerJoin.PlayerNames.Remove(message.SenderId);
foreach (var objectId in message.ObjectIds)
{

View File

@ -3,20 +3,17 @@ using UnityEngine.Networking;
namespace QSB.Events
{
public abstract class NameMessage : QSBMessage
public abstract class PlayerMessage : QSBMessage
{
public uint SenderId { get; set; }
public string PlayerName { get; set; }
public override void Deserialize(NetworkReader reader)
{
PlayerName = reader.ReadString();
SenderId = reader.ReadUInt32();
}
public override void Serialize(NetworkWriter writer)
{
writer.Write(PlayerName);
writer.Write(SenderId);
}
}

View File

@ -116,7 +116,7 @@
<Compile Include="DebugLog.cs" />
<Compile Include="Events\DeathMessage.cs" />
<Compile Include="Events\PlayerJoin.cs" />
<Compile Include="Events\NameMessage.cs" />
<Compile Include="Events\PlayerMessage.cs" />
<Compile Include="Messaging\MessageHandler.cs" />
<Compile Include="Messaging\MessageType.cs" />
<Compile Include="Messaging\QSBMessage.cs" />

View File

@ -142,7 +142,7 @@ namespace QSB.TimeSync
private void OnClientReceiveMessage(DeathMessage message)
{
var playerName = PlayerJoin.PlayerNames.TryGetValue(message.SenderId, out var n) ? n : message.PlayerName;
var playerName = PlayerJoin.PlayerNames[message.SenderId];
var deathMessage = Necronomicon.GetPhrase(message.DeathType);
DebugLog.All(string.Format(deathMessage, playerName));
}
@ -168,7 +168,6 @@ namespace QSB.TimeSync
{
var message = new DeathMessage
{
PlayerName = PlayerJoin.MyName,
SenderId = PlayerTransformSync.LocalInstance.netId.Value,
DeathType = deathType
};