baba booey use NetworkReader and NetworkWriter

This commit is contained in:
JohnCorby 2022-01-13 23:38:45 -08:00
parent ff779b2895
commit 235ed1203b
39 changed files with 293 additions and 275 deletions

View File

@ -334,34 +334,44 @@ namespace Mirror.Weaver
// try to use Deserialize if this is a message
bool ReadFromDeserialize(TypeDefinition klass, ILProcessor worker)
{
if (!klass.IsDerivedFrom<NetworkMessage>())
if (!klass.ImplementsInterface<NetworkMessage>())
return false;
foreach (var method in klass.Methods)
var toSearch = klass;
while (toSearch != null)
{
if (method.Name != "Deserialize")
continue;
if (toSearch.HasMethods)
{
foreach (var method in toSearch.Methods)
{
if (method.Name != "Deserialize")
continue;
if (method.Parameters.Count != 1)
continue;
if (method.Parameters.Count != 1)
continue;
if (!method.Parameters[0].ParameterType.Is<NetworkWriter>())
continue;
if (!method.Parameters[0].ParameterType.Is<NetworkReader>())
continue;
if (!method.ReturnType.Is(typeof(void)))
continue;
if (!method.ReturnType.Is(typeof(void)))
continue;
if (method.HasGenericParameters)
continue;
if (method.HasGenericParameters)
continue;
// todo does this even work?
Log.Error($"read using {method}", klass);
// mismatched ldloca/ldloc for struct/class combinations is invalid IL, which causes crash at runtime
var opcode = klass.IsValueType ? OpCodes.Ldloca : OpCodes.Ldloc;
worker.Emit(opcode, 0); // the klass
worker.Emit(OpCodes.Ldarg_0); // the reader
worker.Emit(OpCodes.Callvirt, method);
return true;
// todo does this even work?
Log.Error($"read using {method}", klass);
// mismatched ldloca/ldloc for struct/class combinations is invalid IL, which causes crash at runtime
var opcode = klass.IsValueType ? OpCodes.Ldloca : OpCodes.Ldloc;
worker.Emit(opcode, 0); // the klass
worker.Emit(OpCodes.Ldarg_0); // the reader
worker.Emit(OpCodes.Callvirt, method);
return true;
}
}
// Could not find the method in this class, try the parent
toSearch = toSearch.BaseType?.Resolve();
}
return false;

View File

@ -251,32 +251,41 @@ namespace Mirror.Weaver
// try to use Serialize if this is a message
bool WriteFromSerialize(TypeDefinition klass, ILProcessor worker)
{
if (!klass.IsDerivedFrom<NetworkMessage>())
if (!klass.ImplementsInterface<NetworkMessage>())
return false;
foreach (var method in klass.Methods)
{
if (method.Name != "Serialize")
continue;
var toSearch = klass;
while (toSearch != null) {
if (toSearch.HasMethods)
{
foreach (var method in toSearch.Methods)
{
if (method.Name != "Serialize")
continue;
if (method.Parameters.Count != 1)
continue;
if (method.Parameters.Count != 1)
continue;
if (!method.Parameters[0].ParameterType.Is<NetworkReader>())
continue;
if (!method.Parameters[0].ParameterType.Is<NetworkWriter>())
continue;
if (!method.ReturnType.Is(typeof(void)))
continue;
if (!method.ReturnType.Is(typeof(void)))
continue;
if (method.HasGenericParameters)
continue;
if (method.HasGenericParameters)
continue;
// todo does this even work?
Log.Error($"write using {method}", klass);
worker.Emit(OpCodes.Ldarg_1); // the klass
worker.Emit(OpCodes.Ldarg_0); // the writer
worker.Emit(OpCodes.Callvirt, method);
return true;
// todo does this even work?
Log.Error($"write using {method}", klass);
worker.Emit(OpCodes.Ldarg_1); // the klass
worker.Emit(OpCodes.Ldarg_0); // the writer
worker.Emit(OpCodes.Callvirt, method);
return true;
}
}
// Could not find the method in this class, try the parent
toSearch = toSearch.BaseType?.Resolve();
}
return false;

View File

@ -1,7 +1,7 @@
using QSB.Anglerfish.WorldObjects;
using Mirror;
using QSB.Anglerfish.WorldObjects;
using QSB.Messaging;
using QSB.Player;
using QuantumUNET.Transport;
using UnityEngine;
namespace QSB.Anglerfish.Messages
@ -18,17 +18,17 @@ namespace QSB.Anglerfish.Messages
LocalDisturbancePos = qsbAngler.AttachedObject._localDisturbancePos;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(TargetId);
writer.Write(LocalDisturbancePos);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
TargetId = reader.ReadUInt32();
TargetId = reader.Read<uint>();
LocalDisturbancePos = reader.ReadVector3();
}

View File

@ -1,7 +1,7 @@
using QSB.Messaging;
using Mirror;
using QSB.Messaging;
using QSB.Player;
using QSB.WorldSync;
using QuantumUNET.Transport;
namespace QSB.Animation.Player.Messages
{
@ -16,17 +16,17 @@ namespace QSB.Animation.Player.Messages
Name = name;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(PlayerId);
writer.Write(Name);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
PlayerId = reader.ReadUInt32();
PlayerId = reader.Read<uint>();
Name = reader.ReadString();
}

View File

@ -1,7 +1,7 @@
using QSB.Messaging;
using Mirror;
using QSB.Messaging;
using QSB.Player;
using QSB.WorldSync;
using QuantumUNET.Transport;
namespace QSB.Animation.Player.Messages
{
@ -15,16 +15,16 @@ namespace QSB.Animation.Player.Messages
Value = type;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(PlayerId);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
PlayerId = reader.ReadUInt32();
PlayerId = reader.Read<uint>();
}
public override bool ShouldReceive => WorldObjectManager.AllObjectsReady;

View File

@ -1,7 +1,7 @@
using QSB.Messaging;
using Mirror;
using QSB.Messaging;
using QSB.WorldSync;
using QuantumUNET;
using QuantumUNET.Transport;
namespace QSB.AuthoritySync
{
@ -19,16 +19,16 @@ namespace QSB.AuthoritySync
Value = action;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(NetId);
writer.Write(NetId.Value);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
NetId = reader.ReadNetworkId();
NetId = new QNetworkInstanceId(reader.Read<uint>());
}
public override bool ShouldReceive => WorldObjectManager.AllObjectsReady;

View File

@ -1,7 +1,7 @@
using QSB.Messaging;
using Mirror;
using QSB.Messaging;
using QSB.Player;
using QSB.WorldSync;
using QuantumUNET.Transport;
using System.Text.RegularExpressions;
using UnityEngine;
@ -19,17 +19,17 @@ namespace QSB.ConversationSync.Messages
Message = message;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(Id);
writer.Write(Message);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
Id = reader.ReadInt32();
Id = reader.Read<int>();
Message = reader.ReadString();
}

View File

@ -1,9 +1,9 @@
using OWML.Common;
using Mirror;
using OWML.Common;
using QSB.Messaging;
using QSB.Player;
using QSB.Utility;
using QSB.WorldSync;
using QuantumUNET.Transport;
namespace QSB.ConversationSync.Messages
{
@ -19,7 +19,7 @@ namespace QSB.ConversationSync.Messages
Value = start;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(TreeId);
@ -27,12 +27,12 @@ namespace QSB.ConversationSync.Messages
writer.Write(Value);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
TreeId = reader.ReadInt32();
PlayerId = reader.ReadUInt32();
Value = reader.ReadBoolean();
TreeId = reader.Read<int>();
PlayerId = reader.Read<uint>();
Value = reader.Read<bool>();
}
public override bool ShouldReceive => WorldObjectManager.AllObjectsReady;

View File

@ -1,7 +1,7 @@
using QSB.Messaging;
using Mirror;
using QSB.Messaging;
using QSB.Player.TransformSync;
using QSB.WorldSync;
using QuantumUNET.Transport;
namespace QSB.ConversationSync.Messages
{
@ -26,18 +26,18 @@ namespace QSB.ConversationSync.Messages
ConditionState = state;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(ConditionName);
writer.Write(ConditionState);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
ConditionName = reader.ReadString();
ConditionState = reader.ReadBoolean();
ConditionState = reader.Read<bool>();
}
public override void OnReceiveRemote()

View File

@ -1,6 +1,6 @@
using QSB.ConversationSync.WorldObjects;
using Mirror;
using QSB.ConversationSync.WorldObjects;
using QSB.Messaging;
using QuantumUNET.Transport;
namespace QSB.ConversationSync.Messages
{
@ -15,18 +15,18 @@ namespace QSB.ConversationSync.Messages
ListDialoguesIndex = listIndex;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(ActivatedDialogueIndex);
writer.Write(ListDialoguesIndex);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
ActivatedDialogueIndex = reader.ReadInt32();
ListDialoguesIndex = reader.ReadInt32();
ActivatedDialogueIndex = reader.Read<int>();
ListDialoguesIndex = reader.Read<int>();
}
public override void OnReceiveRemote()

View File

@ -1,9 +1,9 @@
using QSB.ClientServerStateSync;
using Mirror;
using QSB.ClientServerStateSync;
using QSB.Messaging;
using QSB.Player;
using QSB.RespawnSync;
using QSB.Utility;
using QuantumUNET.Transport;
namespace QSB.DeathSync.Messages
{
@ -17,16 +17,16 @@ namespace QSB.DeathSync.Messages
NecronomiconIndex = Necronomicon.GetRandomIndex(type);
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(NecronomiconIndex);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
NecronomiconIndex = reader.ReadInt32();
NecronomiconIndex = reader.Read<int>();
}
public override void OnReceiveLocal()

View File

@ -1,8 +1,8 @@
using QSB.Messaging;
using Mirror;
using QSB.Messaging;
using QSB.Player.TransformSync;
using QSB.Utility;
using QSB.WorldSync;
using QuantumUNET.Transport;
using System;
using UnityEngine;
@ -29,18 +29,18 @@ namespace QSB.EyeOfTheUniverse.EyeStateSync.Messages
_onDuration = onDuration;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(_offDuration);
writer.Write(_onDuration);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
_offDuration = reader.ReadSingle();
_onDuration = reader.ReadSingle();
_offDuration = reader.Read<float>();
_onDuration = reader.Read<float>();
}
public override bool ShouldReceive => WorldObjectManager.AllObjectsReady;

View File

@ -1,6 +1,6 @@
using QSB.Messaging;
using Mirror;
using QSB.Messaging;
using QSB.WorldSync;
using QuantumUNET.Transport;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
@ -13,7 +13,7 @@ namespace QSB.EyeOfTheUniverse.ForestOfGalaxies.Messages
public KillGalaxiesMessage(List<float> deathDelays) => _deathDelays = deathDelays;
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(_deathDelays.Count);
@ -23,14 +23,14 @@ namespace QSB.EyeOfTheUniverse.ForestOfGalaxies.Messages
}
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
var length = reader.ReadInt32();
var length = reader.Read<int>();
_deathDelays = new List<float>(length);
for (var i = 0; i < length; i++)
{
_deathDelays.Add(reader.ReadSingle());
_deathDelays.Add(reader.Read<float>());
}
}

View File

@ -1,9 +1,9 @@
using QSB.ItemSync.WorldObjects.Items;
using Mirror;
using QSB.ItemSync.WorldObjects.Items;
using QSB.Messaging;
using QSB.Player;
using QSB.SectorSync.WorldObjects;
using QSB.WorldSync;
using QuantumUNET.Transport;
using UnityEngine;
namespace QSB.ItemSync.Messages
@ -21,7 +21,7 @@ namespace QSB.ItemSync.Messages
SectorId = sector.GetWorldObject<QSBSector>().ObjectId;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(Position);
@ -29,12 +29,12 @@ namespace QSB.ItemSync.Messages
writer.Write(SectorId);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
Position = reader.ReadVector3();
Normal = reader.ReadVector3();
SectorId = reader.ReadInt32();
SectorId = reader.Read<int>();
}
public override void OnReceiveRemote()

View File

@ -1,10 +1,10 @@
using QSB.ItemSync.WorldObjects.Items;
using Mirror;
using QSB.ItemSync.WorldObjects.Items;
using QSB.ItemSync.WorldObjects.Sockets;
using QSB.Messaging;
using QSB.Player;
using QSB.Utility;
using QSB.WorldSync;
using QuantumUNET.Transport;
namespace QSB.ItemSync.Messages
{
@ -20,18 +20,18 @@ namespace QSB.ItemSync.Messages
ItemId = itemId;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(SocketId);
writer.Write(ItemId);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
SocketId = reader.ReadInt32();
ItemId = reader.ReadInt32();
SocketId = reader.Read<int>();
ItemId = reader.Read<int>();
}
public override bool ShouldReceive => WorldObjectManager.AllObjectsReady;

View File

@ -1,6 +1,6 @@
using QSB.Messaging;
using Mirror;
using QSB.Messaging;
using QSB.WorldSync;
using QuantumUNET.Transport;
namespace QSB.LogSync.Messages
{
@ -17,7 +17,7 @@ namespace QSB.LogSync.Messages
ShowNotification = showNotification;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(FactId);
@ -25,12 +25,12 @@ namespace QSB.LogSync.Messages
writer.Write(ShowNotification);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
FactId = reader.ReadString();
SaveGame = reader.ReadBoolean();
ShowNotification = reader.ReadBoolean();
SaveGame = reader.Read<bool>();
ShowNotification = reader.Read<bool>();
}
public override bool ShouldReceive => WorldObjectManager.AllObjectsReady;

View File

@ -1,5 +1,4 @@
using Mirror;
using QuantumUNET.Transport;
using System;
namespace QSB.Messaging
@ -19,7 +18,7 @@ namespace QSB.Messaging
/// <summary>
/// call the base method when overriding
/// </summary>
public virtual void Serialize(QNetworkWriter writer)
public virtual void Serialize(NetworkWriter writer)
{
writer.Write(From);
writer.Write(To);
@ -31,10 +30,10 @@ namespace QSB.Messaging
/// note: no constructor is called before this,
/// so fields won't be initialized.
/// </summary>
public virtual void Deserialize(QNetworkReader reader)
public virtual void Deserialize(NetworkReader reader)
{
From = reader.ReadUInt32();
To = reader.ReadUInt32();
From = reader.Read<uint>();
To = reader.Read<uint>();
}
/// <summary>
@ -51,16 +50,16 @@ namespace QSB.Messaging
{
protected bool Value;
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(Value);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
Value = reader.ReadBoolean();
Value = reader.Read<bool>();
}
}
@ -68,16 +67,16 @@ namespace QSB.Messaging
{
protected float Value;
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(Value);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
Value = reader.ReadSingle();
Value = reader.Read<float>();
}
}
@ -85,16 +84,16 @@ namespace QSB.Messaging
{
protected E Value;
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write((int)(object)Value);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
Value = (E)(object)reader.ReadInt32();
Value = (E)(object)reader.Read<int>();
}
}
}

View File

@ -1,5 +1,5 @@
using QSB.WorldSync;
using QuantumUNET.Transport;
using Mirror;
using QSB.WorldSync;
using System;
namespace QSB.Messaging
@ -15,16 +15,16 @@ namespace QSB.Messaging
/// </summary>
protected T WorldObject { get; private set; }
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(ObjectId);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
ObjectId = reader.ReadInt32();
ObjectId = reader.Read<int>();
}
public override bool ShouldReceive
@ -46,16 +46,16 @@ namespace QSB.Messaging
{
protected bool Value;
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(Value);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
Value = reader.ReadBoolean();
Value = reader.Read<bool>();
}
}
@ -63,16 +63,16 @@ namespace QSB.Messaging
{
protected float Value;
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(Value);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
Value = reader.ReadSingle();
Value = reader.Read<float>();
}
}
@ -82,16 +82,16 @@ namespace QSB.Messaging
{
protected E Value;
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write((int)(object)Value);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
Value = (E)(object)reader.ReadInt32();
Value = (E)(object)reader.Read<int>();
}
}
}

View File

@ -1,9 +1,9 @@
using OWML.Common;
using Mirror;
using OWML.Common;
using QSB.Messaging;
using QSB.MeteorSync.WorldObjects;
using QSB.Utility;
using QSB.WorldSync;
using QuantumUNET.Transport;
using UnityEngine;
namespace QSB.MeteorSync.Messages
@ -44,7 +44,7 @@ namespace QSB.MeteorSync.Messages
}
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(Integrity);
@ -61,16 +61,16 @@ namespace QSB.MeteorSync.Messages
}
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
Integrity = reader.ReadSingle();
OrigIntegrity = reader.ReadSingle();
LeashLength = reader.ReadSingle();
IsDetached = reader.ReadBoolean();
Integrity = reader.Read<float>();
OrigIntegrity = reader.Read<float>();
LeashLength = reader.Read<float>();
IsDetached = reader.Read<bool>();
if (IsDetached)
{
IsThruWhiteHole = reader.ReadBoolean();
IsThruWhiteHole = reader.Read<bool>();
RelPos = reader.ReadVector3();
RelRot = reader.ReadQuaternion();
RelVel = reader.ReadVector3();

View File

@ -1,6 +1,6 @@
using QSB.Messaging;
using Mirror;
using QSB.Messaging;
using QSB.MeteorSync.WorldObjects;
using QuantumUNET.Transport;
namespace QSB.MeteorSync.Messages
{
@ -15,18 +15,18 @@ namespace QSB.MeteorSync.Messages
LaunchSpeed = qsbMeteorLauncher.LaunchSpeed;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(MeteorId);
writer.Write(LaunchSpeed);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
MeteorId = reader.ReadInt32();
LaunchSpeed = reader.ReadSingle();
MeteorId = reader.Read<int>();
LaunchSpeed = reader.Read<float>();
}
public override void OnReceiveRemote() => WorldObject.LaunchMeteor(MeteorId, LaunchSpeed);

View File

@ -1,6 +1,6 @@
using QSB.Messaging;
using Mirror;
using QSB.Messaging;
using QSB.OrbSync.WorldObjects;
using QuantumUNET.Transport;
namespace QSB.OrbSync.Messages
{
@ -10,16 +10,16 @@ namespace QSB.OrbSync.Messages
public OrbSlotMessage(int slotIndex) => SlotIndex = slotIndex;
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(SlotIndex);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
SlotIndex = reader.ReadInt32();
SlotIndex = reader.Read<int>();
}
public override void OnReceiveRemote() => WorldObject.SetSlot(SlotIndex);

View File

@ -1,4 +1,5 @@
using OWML.Common;
using Mirror;
using OWML.Common;
using QSB.Animation.NPC.WorldObjects;
using QSB.EyeOfTheUniverse.CosmicInflation;
using QSB.EyeOfTheUniverse.VesselSync;
@ -8,7 +9,6 @@ using QSB.PoolSync;
using QSB.ShipSync;
using QSB.Utility;
using QSB.WorldSync;
using QuantumUNET.Transport;
namespace QSB.Player.Messages
{
@ -38,16 +38,16 @@ namespace QSB.Player.Messages
ObjectId = objectId;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(ObjectId);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
ObjectId = reader.ReadInt32();
ObjectId = reader.Read<int>();
}
public override bool ShouldReceive => WorldObjectManager.AllObjectsReady;

View File

@ -1,7 +1,7 @@
using QSB.Messaging;
using Mirror;
using QSB.Messaging;
using QSB.QuantumSync.WorldObjects;
using QSB.WorldSync;
using QuantumUNET.Transport;
namespace QSB.Player.Messages
{
@ -40,16 +40,16 @@ namespace QSB.Player.Messages
player.EntangledObject = quantumObject;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(ObjectId);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
ObjectId = reader.ReadInt32();
ObjectId = reader.Read<int>();
}
}
}

View File

@ -1,8 +1,8 @@
using OWML.Common;
using Mirror;
using OWML.Common;
using QSB.ClientServerStateSync;
using QSB.Messaging;
using QSB.Utility;
using QuantumUNET.Transport;
namespace QSB.Player.Messages
{
@ -32,7 +32,7 @@ namespace QSB.Player.Messages
ClientState = player.State;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(PlayerName);
@ -46,18 +46,18 @@ namespace QSB.Player.Messages
writer.Write((int)ClientState);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
PlayerName = reader.ReadString();
IsReady = reader.ReadBoolean();
FlashlightActive = reader.ReadBoolean();
SuitedUp = reader.ReadBoolean();
ProbeLauncherEquipped = reader.ReadBoolean();
SignalscopeEquipped = reader.ReadBoolean();
TranslatorEquipped = reader.ReadBoolean();
ProbeActive = reader.ReadBoolean();
ClientState = (ClientState)reader.ReadInt32();
IsReady = reader.Read<bool>();
FlashlightActive = reader.Read<bool>();
SuitedUp = reader.Read<bool>();
ProbeLauncherEquipped = reader.Read<bool>();
SignalscopeEquipped = reader.Read<bool>();
TranslatorEquipped = reader.Read<bool>();
ProbeActive = reader.Read<bool>();
ClientState = (ClientState)reader.Read<int>();
}
public override void OnReceiveRemote()

View File

@ -1,7 +1,7 @@
using OWML.Common;
using Mirror;
using OWML.Common;
using QSB.Messaging;
using QSB.Utility;
using QuantumUNET.Transport;
using System.Linq;
namespace QSB.Player.Messages
@ -23,7 +23,7 @@ namespace QSB.Player.Messages
DlcInstalled = QSBCore.DLCInstalled;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(PlayerName);
@ -33,14 +33,14 @@ namespace QSB.Player.Messages
writer.Write(DlcInstalled);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
PlayerName = reader.ReadString();
QSBVersion = reader.ReadString();
GameVersion = reader.ReadString();
Platform = (GamePlatform)reader.ReadInt32();
DlcInstalled = reader.ReadBoolean();
Platform = (GamePlatform)reader.Read<int>();
DlcInstalled = reader.Read<bool>();
}
public override void OnReceiveRemote()

View File

@ -1,8 +1,8 @@
using QSB.Menus;
using Mirror;
using QSB.Menus;
using QSB.Messaging;
using QSB.Utility;
using QuantumUNET;
using QuantumUNET.Transport;
using System.Linq;
namespace QSB.Player.Messages
@ -20,16 +20,16 @@ namespace QSB.Player.Messages
Value = reason;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(PlayerId);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
PlayerId = reader.ReadUInt32();
PlayerId = reader.Read<uint>();
}
public override void OnReceiveLocal()

View File

@ -1,7 +1,7 @@
using QSB.Messaging;
using Mirror;
using QSB.Messaging;
using QSB.QuantumSync.WorldObjects;
using QSB.Utility;
using QuantumUNET.Transport;
using UnityEngine;
namespace QSB.QuantumSync.Messages
@ -17,18 +17,18 @@ namespace QSB.QuantumSync.Messages
Angle = angle;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(Active);
writer.Write(Angle);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
Active = reader.ReadBoolean();
Angle = reader.ReadSingle();
Active = reader.Read<bool>();
Angle = reader.Read<float>();
}
public override void OnReceiveRemote()

View File

@ -1,6 +1,6 @@
using QSB.Messaging;
using Mirror;
using QSB.Messaging;
using QSB.WorldSync;
using QuantumUNET.Transport;
using System.Linq;
using UnityEngine;
@ -19,7 +19,7 @@ namespace QSB.QuantumSync.Messages
OrbitAngle = orbitAngle;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(StateIndex);
@ -27,12 +27,12 @@ namespace QSB.QuantumSync.Messages
writer.Write(OrbitAngle);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
StateIndex = reader.ReadInt32();
StateIndex = reader.Read<int>();
OnUnitSphere = reader.ReadVector3();
OrbitAngle = reader.ReadInt32();
OrbitAngle = reader.Read<int>();
}
public override bool ShouldReceive => WorldObjectManager.AllObjectsReady;

View File

@ -1,8 +1,8 @@
using OWML.Common;
using Mirror;
using OWML.Common;
using QSB.Messaging;
using QSB.QuantumSync.WorldObjects;
using QSB.Utility;
using QuantumUNET.Transport;
namespace QSB.QuantumSync.Messages
{
@ -12,16 +12,16 @@ namespace QSB.QuantumSync.Messages
public MultiStateChangeMessage(int stateIndex) => StateIndex = stateIndex;
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(StateIndex);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
StateIndex = reader.ReadInt32();
StateIndex = reader.Read<int>();
}
public override void OnReceiveRemote()

View File

@ -1,7 +1,7 @@
using QSB.Messaging;
using Mirror;
using QSB.Messaging;
using QSB.Player;
using QSB.QuantumSync.WorldObjects;
using QuantumUNET.Transport;
namespace QSB.QuantumSync.Messages
{
@ -11,16 +11,16 @@ namespace QSB.QuantumSync.Messages
public QuantumAuthorityMessage(uint authorityOwner) => AuthorityOwner = authorityOwner;
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(AuthorityOwner);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
AuthorityOwner = reader.ReadUInt32();
AuthorityOwner = reader.Read<uint>();
}
public override bool ShouldReceive

View File

@ -1,6 +1,6 @@
using QSB.Messaging;
using Mirror;
using QSB.Messaging;
using QSB.QuantumSync.WorldObjects;
using QuantumUNET.Transport;
using System;
using System.Linq;
@ -12,14 +12,14 @@ namespace QSB.QuantumSync.Messages
public QuantumShuffleMessage(int[] indexArray) => IndexArray = indexArray;
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
var temp = IndexArray.Select(x => (byte)x).ToArray();
writer.WriteBytesAndSize(temp, temp.Length);
writer.WriteBytesAndSize(temp);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
IndexArray = Array.ConvertAll(reader.ReadBytesAndSize(), Convert.ToInt32);

View File

@ -1,8 +1,8 @@
using OWML.Common;
using Mirror;
using OWML.Common;
using QSB.Messaging;
using QSB.QuantumSync.WorldObjects;
using QSB.Utility;
using QuantumUNET.Transport;
using UnityEngine;
namespace QSB.QuantumSync.Messages
@ -18,17 +18,17 @@ namespace QSB.QuantumSync.Messages
LocalRotation = localRotation;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(SocketId);
writer.Write(LocalRotation);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
SocketId = reader.ReadInt32();
SocketId = reader.Read<int>();
LocalRotation = reader.ReadQuaternion();
}

View File

@ -1,7 +1,7 @@
using QSB.ClientServerStateSync;
using Mirror;
using QSB.ClientServerStateSync;
using QSB.Messaging;
using QSB.Player;
using QuantumUNET.Transport;
namespace QSB.RespawnSync.Messages
{
@ -11,16 +11,16 @@ namespace QSB.RespawnSync.Messages
public PlayerRespawnMessage(uint playerId) => PlayerId = playerId;
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(PlayerId);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
PlayerId = reader.ReadUInt32();
PlayerId = reader.Read<uint>();
}
public override void OnReceiveLocal() => OnReceiveRemote();

View File

@ -1,10 +1,10 @@
using OWML.Common;
using Mirror;
using OWML.Common;
using QSB.CampfireSync.WorldObjects;
using QSB.Messaging;
using QSB.Player;
using QSB.Utility;
using QSB.WorldSync;
using QuantumUNET.Transport;
namespace QSB.RoastingSync.Messages
{
@ -36,16 +36,16 @@ namespace QSB.RoastingSync.Messages
Value = roasting;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(ObjectId);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
ObjectId = reader.ReadInt32();
ObjectId = reader.Read<int>();
}
public override bool ShouldReceive => WorldObjectManager.AllObjectsReady;

View File

@ -1,8 +1,8 @@
using OWML.Common;
using Mirror;
using OWML.Common;
using QSB.Menus;
using QSB.Messaging;
using QSB.Utility;
using QuantumUNET.Transport;
using System.Collections.Generic;
namespace QSB.SaveSync.Messages
@ -31,7 +31,7 @@ namespace QSB.SaveSync.Messages
KnownSignals = gameSave.knownSignals;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(WarpedToTheEye);
@ -53,27 +53,27 @@ namespace QSB.SaveSync.Messages
}
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
WarpedToTheEye = reader.ReadBoolean();
SecondsRemainingOnWarp = reader.ReadSingle();
LaunchCodesGiven = reader.ReadBoolean();
LoopCount = reader.ReadInt32();
WarpedToTheEye = reader.Read<bool>();
SecondsRemainingOnWarp = reader.Read<float>();
LaunchCodesGiven = reader.Read<bool>();
LoopCount = reader.Read<int>();
var frequenciesLength = reader.ReadInt32();
var frequenciesLength = reader.Read<int>();
KnownFrequencies = new bool[frequenciesLength];
for (var i = 0; i < frequenciesLength; i++)
{
KnownFrequencies[i] = reader.ReadBoolean();
KnownFrequencies[i] = reader.Read<bool>();
}
var signalsLength = reader.ReadInt32();
var signalsLength = reader.Read<int>();
KnownSignals = new Dictionary<int, bool>(signalsLength);
for (var i = 0; i < signalsLength; i++)
{
var key = reader.ReadInt32();
var value = reader.ReadBoolean();
var key = reader.Read<int>();
var value = reader.Read<bool>();
KnownSignals.Add(key, value);
}
}

View File

@ -1,7 +1,7 @@
using QSB.ClientServerStateSync;
using Mirror;
using QSB.ClientServerStateSync;
using QSB.Messaging;
using QSB.WorldSync;
using QuantumUNET.Transport;
using UnityEngine;
namespace QSB.StatueSync.Messages
@ -19,7 +19,7 @@ namespace QSB.StatueSync.Messages
CameraDegrees = degrees;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(PlayerPosition);
@ -27,12 +27,12 @@ namespace QSB.StatueSync.Messages
writer.Write(CameraDegrees);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
PlayerPosition = reader.ReadVector3();
PlayerRotation = reader.ReadQuaternion();
CameraDegrees = reader.ReadSingle();
CameraDegrees = reader.Read<float>();
}
public override bool ShouldReceive => WorldObjectManager.AllObjectsReady;

View File

@ -1,5 +1,5 @@
using QSB.Messaging;
using QuantumUNET.Transport;
using Mirror;
using QSB.Messaging;
namespace QSB.TimeSync.Messages
{
@ -14,18 +14,18 @@ namespace QSB.TimeSync.Messages
LoopCount = count;
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(ServerTime);
writer.Write(LoopCount);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
ServerTime = reader.ReadSingle();
LoopCount = reader.ReadInt16();
ServerTime = reader.Read<float>();
LoopCount = reader.Read<int>();
}
public override void OnReceiveRemote()

View File

@ -1,6 +1,6 @@
using QSB.Messaging;
using Mirror;
using QSB.Messaging;
using QSB.Tools.TranslatorTool.TranslationSync.WorldObjects;
using QuantumUNET.Transport;
namespace QSB.Tools.TranslatorTool.TranslationSync.Messages
{
@ -10,16 +10,16 @@ namespace QSB.Tools.TranslatorTool.TranslationSync.Messages
public SetAsTranslatedMessage(int textId) => TextId = textId;
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(TextId);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
TextId = reader.ReadInt32();
TextId = reader.Read<int>();
}
public override void OnReceiveRemote() => WorldObject.SetAsTranslated(TextId);

View File

@ -1,8 +1,8 @@
using QSB.Messaging;
using Mirror;
using QSB.Messaging;
using QSB.Player.TransformSync;
using QSB.SectorSync.WorldObjects;
using QSB.WorldSync;
using QuantumUNET.Transport;
using UnityEngine;
namespace QSB.Utility.Messages
@ -41,7 +41,7 @@ namespace QSB.Utility.Messages
RelAngVel = refBody.ToRelAngVel(body.GetAngularVelocity());
}
public override void Serialize(QNetworkWriter writer)
public override void Serialize(NetworkWriter writer)
{
base.Serialize(writer);
writer.Write(SectorId);
@ -52,13 +52,13 @@ namespace QSB.Utility.Messages
writer.Write(RelAngVel);
}
public override void Deserialize(QNetworkReader reader)
public override void Deserialize(NetworkReader reader)
{
base.Deserialize(reader);
SectorId = reader.ReadInt32();
SectorId = reader.Read<int>();
RelPos = reader.ReadVector3();
RelRot = reader.ReadQuaternion();
DegreesY = reader.ReadSingle();
DegreesY = reader.Read<float>();
RelVel = reader.ReadVector3();
RelAngVel = reader.ReadVector3();
}