mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-01-29 00:32:43 +00:00
write and read work now with arrays and enums
This commit is contained in:
parent
143098be36
commit
32329d9af7
@ -64,8 +64,6 @@ namespace Mirror.Weaver
|
|||||||
|
|
||||||
MethodReference GenerateReader(TypeReference variableReference, ref bool WeavingFailed)
|
MethodReference GenerateReader(TypeReference variableReference, ref bool WeavingFailed)
|
||||||
{
|
{
|
||||||
Log.Warning($"GenerateReader for {variableReference}");
|
|
||||||
|
|
||||||
// Arrays are special, if we resolve them, we get the element type,
|
// Arrays are special, if we resolve them, we get the element type,
|
||||||
// so the following ifs might choke on it for scriptable objects
|
// so the following ifs might choke on it for scriptable objects
|
||||||
// or other objects that require a custom serializer
|
// or other objects that require a custom serializer
|
||||||
|
@ -75,8 +75,6 @@ namespace Mirror.Weaver
|
|||||||
//Throws GenerateWriterException when writer could not be generated for type
|
//Throws GenerateWriterException when writer could not be generated for type
|
||||||
MethodReference GenerateWriter(TypeReference variableReference, ref bool WeavingFailed)
|
MethodReference GenerateWriter(TypeReference variableReference, ref bool WeavingFailed)
|
||||||
{
|
{
|
||||||
Log.Warning($"GenerateWriter for {variableReference}");
|
|
||||||
|
|
||||||
if (variableReference.IsByReference)
|
if (variableReference.IsByReference)
|
||||||
{
|
{
|
||||||
throw new GenerateWriterException($"Cannot pass {variableReference.Name} by reference", variableReference);
|
throw new GenerateWriterException($"Cannot pass {variableReference.Name} by reference", variableReference);
|
||||||
|
@ -25,7 +25,7 @@ namespace QSB.ConversationSync.Messages
|
|||||||
{
|
{
|
||||||
base.Serialize(writer);
|
base.Serialize(writer);
|
||||||
writer.Write(_inRemoteDialogue);
|
writer.Write(_inRemoteDialogue);
|
||||||
writer.WriteArray(_activatedDialogues);
|
writer.Write(_activatedDialogues);
|
||||||
writer.Write(_dialogueIndex);
|
writer.Write(_dialogueIndex);
|
||||||
writer.Write(_colliderEnabled);
|
writer.Write(_colliderEnabled);
|
||||||
}
|
}
|
||||||
@ -34,7 +34,7 @@ namespace QSB.ConversationSync.Messages
|
|||||||
{
|
{
|
||||||
base.Deserialize(reader);
|
base.Deserialize(reader);
|
||||||
_inRemoteDialogue = reader.Read<bool>();
|
_inRemoteDialogue = reader.Read<bool>();
|
||||||
_activatedDialogues = reader.ReadArray<bool>();
|
_activatedDialogues = reader.Read<bool[]>();
|
||||||
_dialogueIndex = reader.Read<int>();
|
_dialogueIndex = reader.Read<int>();
|
||||||
_colliderEnabled = reader.Read<bool>();
|
_colliderEnabled = reader.Read<bool>();
|
||||||
}
|
}
|
||||||
|
@ -1,27 +1,12 @@
|
|||||||
using Mirror;
|
using QSB.Messaging;
|
||||||
using QSB.Messaging;
|
|
||||||
using QSB.QuantumSync.WorldObjects;
|
using QSB.QuantumSync.WorldObjects;
|
||||||
|
|
||||||
namespace QSB.QuantumSync.Messages
|
namespace QSB.QuantumSync.Messages
|
||||||
{
|
{
|
||||||
internal class QuantumShuffleMessage : QSBWorldObjectMessage<QSBQuantumShuffleObject>
|
internal class QuantumShuffleMessage : QSBWorldObjectMessage<QSBQuantumShuffleObject, int[]>
|
||||||
{
|
{
|
||||||
private int[] IndexArray;
|
public QuantumShuffleMessage(int[] indexArray) => Value = indexArray;
|
||||||
|
|
||||||
public QuantumShuffleMessage(int[] indexArray) => IndexArray = indexArray;
|
public override void OnReceiveRemote() => WorldObject.ShuffleObjects(Value);
|
||||||
|
|
||||||
public override void Serialize(NetworkWriter writer)
|
|
||||||
{
|
|
||||||
base.Serialize(writer);
|
|
||||||
writer.WriteArray(IndexArray);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Deserialize(NetworkReader reader)
|
|
||||||
{
|
|
||||||
base.Deserialize(reader);
|
|
||||||
IndexArray = reader.ReadArray<int>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnReceiveRemote() => WorldObject.ShuffleObjects(IndexArray);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ namespace QSB.SaveSync.Messages
|
|||||||
writer.Write(LaunchCodesGiven);
|
writer.Write(LaunchCodesGiven);
|
||||||
writer.Write(LoopCount);
|
writer.Write(LoopCount);
|
||||||
|
|
||||||
writer.WriteArray(KnownFrequencies);
|
writer.Write(KnownFrequencies);
|
||||||
|
|
||||||
writer.Write(KnownSignals.Count);
|
writer.Write(KnownSignals.Count);
|
||||||
foreach (var (name, discovered) in KnownSignals)
|
foreach (var (name, discovered) in KnownSignals)
|
||||||
@ -58,7 +58,7 @@ namespace QSB.SaveSync.Messages
|
|||||||
LaunchCodesGiven = reader.Read<bool>();
|
LaunchCodesGiven = reader.Read<bool>();
|
||||||
LoopCount = reader.Read<int>();
|
LoopCount = reader.Read<int>();
|
||||||
|
|
||||||
KnownFrequencies = reader.ReadArray<bool>();
|
KnownFrequencies = reader.Read<bool[]>();
|
||||||
|
|
||||||
var signalsLength = reader.Read<int>();
|
var signalsLength = reader.Read<int>();
|
||||||
KnownSignals = new Dictionary<int, bool>(signalsLength);
|
KnownSignals = new Dictionary<int, bool>(signalsLength);
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using Mirror;
|
using QSB.Messaging;
|
||||||
using QSB.Messaging;
|
|
||||||
using QSB.Player;
|
using QSB.Player;
|
||||||
using QSB.TriggerSync.WorldObjects;
|
using QSB.TriggerSync.WorldObjects;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@ -10,28 +9,14 @@ namespace QSB.TriggerSync.Messages
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// always sent by host
|
/// always sent by host
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class TriggerInitialStateMessage : QSBWorldObjectMessage<IQSBTrigger>
|
public class TriggerInitialStateMessage : QSBWorldObjectMessage<IQSBTrigger, uint[]>
|
||||||
{
|
{
|
||||||
private uint[] _playerIds;
|
|
||||||
|
|
||||||
public TriggerInitialStateMessage(IEnumerable<PlayerInfo> occupants) =>
|
public TriggerInitialStateMessage(IEnumerable<PlayerInfo> occupants) =>
|
||||||
_playerIds = occupants.Select(x => x.PlayerId).ToArray();
|
Value = occupants.Select(x => x.PlayerId).ToArray();
|
||||||
|
|
||||||
public override void Serialize(NetworkWriter writer)
|
|
||||||
{
|
|
||||||
base.Serialize(writer);
|
|
||||||
writer.WriteArray(_playerIds);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Deserialize(NetworkReader reader)
|
|
||||||
{
|
|
||||||
base.Deserialize(reader);
|
|
||||||
_playerIds = reader.ReadArray<uint>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnReceiveRemote()
|
public override void OnReceiveRemote()
|
||||||
{
|
{
|
||||||
var serverOccupants = _playerIds.Select(QSBPlayerManager.GetPlayer).ToList();
|
var serverOccupants = Value.Select(QSBPlayerManager.GetPlayer).ToList();
|
||||||
foreach (var added in serverOccupants.Except(WorldObject.Occupants))
|
foreach (var added in serverOccupants.Except(WorldObject.Occupants))
|
||||||
{
|
{
|
||||||
WorldObject.Enter(added);
|
WorldObject.Enter(added);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user