mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-03-03 04:13:52 +00:00
merge de/ser again, just make sure that it doesnt mess with anything (ie store and defer to getfrom/applytoattached
This commit is contained in:
parent
7f1c6ea6c8
commit
0912b6cee0
@ -65,25 +65,36 @@ namespace QSB.JellyfishSync.TransformSync
|
||||
private void OnUnsuspend(OWRigidbody suspendedBody) => netIdentity.SendAuthQueueMessage(AuthQueueAction.Add);
|
||||
private void OnSuspend(OWRigidbody suspendedBody) => netIdentity.SendAuthQueueMessage(AuthQueueAction.Remove);
|
||||
|
||||
protected override void Serialize(NetworkWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
private bool _isRising;
|
||||
|
||||
_qsbJellyfish.Align = true;
|
||||
writer.Write(_qsbJellyfish.IsRising);
|
||||
protected override void Serialize(NetworkWriter writer, bool initialState)
|
||||
{
|
||||
base.Serialize(writer, initialState);
|
||||
|
||||
writer.Write(_isRising);
|
||||
}
|
||||
|
||||
protected override void Deserialize(NetworkReader reader)
|
||||
protected override void Deserialize(NetworkReader reader, bool initialState)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
base.Deserialize(reader, initialState);
|
||||
|
||||
_qsbJellyfish.Align = false;
|
||||
_qsbJellyfish.IsRising = reader.ReadBool();
|
||||
_isRising = reader.ReadBool();
|
||||
}
|
||||
|
||||
protected override void GetFromAttached()
|
||||
{
|
||||
base.GetFromAttached();
|
||||
|
||||
_qsbJellyfish.Align = true;
|
||||
_isRising = _qsbJellyfish.IsRising;
|
||||
}
|
||||
|
||||
/// replacement using SetPosition/Rotation instead of Move
|
||||
protected override void ApplyToAttached()
|
||||
{
|
||||
_qsbJellyfish.Align = false;
|
||||
_qsbJellyfish.IsRising = _isRising;
|
||||
|
||||
var pos = ReferenceTransform.FromRelPos(transform.position);
|
||||
AttachedRigidbody.SetPosition(pos);
|
||||
AttachedRigidbody.SetRotation(ReferenceTransform.FromRelRot(transform.rotation));
|
||||
|
@ -29,6 +29,8 @@ namespace QSB.ShipSync.TransformSync
|
||||
|
||||
protected override void ApplyToAttached()
|
||||
{
|
||||
base.ApplyToAttached();
|
||||
|
||||
if (ReferenceTransform == null || transform.position == Vector3.zero)
|
||||
{
|
||||
return;
|
||||
|
@ -21,13 +21,13 @@ namespace QSB.Syncs
|
||||
Vector3.Distance(transform.position, _prevPosition) > 1E-05f ||
|
||||
Quaternion.Angle(transform.rotation, _prevRotation) > 1E-05f;
|
||||
|
||||
protected override void Serialize(NetworkWriter writer)
|
||||
protected override void Serialize(NetworkWriter writer, bool initialState)
|
||||
{
|
||||
writer.Write(transform.position);
|
||||
writer.Write(transform.rotation);
|
||||
}
|
||||
|
||||
protected override void Deserialize(NetworkReader reader)
|
||||
protected override void Deserialize(NetworkReader reader, bool initialState)
|
||||
{
|
||||
transform.position = reader.ReadVector3();
|
||||
transform.rotation = reader.ReadQuaternion();
|
||||
|
@ -23,13 +23,13 @@ namespace QSB.Syncs
|
||||
Vector3.Distance(Target.localPosition, _prevPosition) > 1E-05f ||
|
||||
Quaternion.Angle(Target.localRotation, _prevRotation) > 1E-05f;
|
||||
|
||||
protected override void Serialize(NetworkWriter writer)
|
||||
protected override void Serialize(NetworkWriter writer, bool initialState)
|
||||
{
|
||||
writer.Write(Target.localPosition);
|
||||
writer.Write(Target.localRotation);
|
||||
}
|
||||
|
||||
protected override void Deserialize(NetworkReader reader)
|
||||
protected override void Deserialize(NetworkReader reader, bool initialState)
|
||||
{
|
||||
Target.localPosition = reader.ReadVector3();
|
||||
Target.localRotation = reader.ReadQuaternion();
|
||||
|
@ -1,8 +1,6 @@
|
||||
using Mirror;
|
||||
using OWML.Common;
|
||||
using QSB.SectorSync;
|
||||
using QSB.SectorSync.WorldObjects;
|
||||
using QSB.Utility;
|
||||
using QSB.WorldSync;
|
||||
|
||||
namespace QSB.Syncs.Sectored
|
||||
@ -15,6 +13,8 @@ namespace QSB.Syncs.Sectored
|
||||
public QSBSector ReferenceSector { get; private set; }
|
||||
public SectorSync.SectorSync SectorSync { get; private set; }
|
||||
|
||||
private int _sectorId;
|
||||
|
||||
public override void Start()
|
||||
{
|
||||
SectorSync = gameObject.AddComponent<SectorSync.SectorSync>();
|
||||
@ -26,10 +26,7 @@ namespace QSB.Syncs.Sectored
|
||||
{
|
||||
base.OnDestroy();
|
||||
QSBSectorManager.Instance.TransformSyncs.Remove(this);
|
||||
if (SectorSync != null)
|
||||
{
|
||||
Destroy(SectorSync);
|
||||
}
|
||||
Destroy(SectorSync);
|
||||
}
|
||||
|
||||
protected override void OnSceneLoaded(OWScene oldScene, OWScene newScene, bool isInUniverse)
|
||||
@ -38,33 +35,38 @@ namespace QSB.Syncs.Sectored
|
||||
SetReferenceSector(null);
|
||||
}
|
||||
|
||||
protected override void Serialize(NetworkWriter writer)
|
||||
protected override void Serialize(NetworkWriter writer, bool initialState)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
if (ReferenceSector == null)
|
||||
{
|
||||
DebugLog.ToConsole($"Warning - ReferenceSector of {LogName} is null.", MessageType.Warning);
|
||||
writer.Write(-1);
|
||||
return;
|
||||
}
|
||||
|
||||
writer.Write(ReferenceSector.ObjectId);
|
||||
base.Serialize(writer, initialState);
|
||||
writer.Write(_sectorId);
|
||||
}
|
||||
|
||||
protected override void Deserialize(NetworkReader reader)
|
||||
protected override void Deserialize(NetworkReader reader, bool initialState)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
base.Deserialize(reader, initialState);
|
||||
_sectorId = reader.ReadInt();
|
||||
}
|
||||
|
||||
var sectorId = reader.ReadInt();
|
||||
if (sectorId == -1)
|
||||
protected override void GetFromAttached()
|
||||
{
|
||||
if (ReferenceSector != null)
|
||||
{
|
||||
_sectorId = ReferenceSector.ObjectId;
|
||||
}
|
||||
else
|
||||
{
|
||||
_sectorId = -1;
|
||||
}
|
||||
}
|
||||
|
||||
protected override void ApplyToAttached()
|
||||
{
|
||||
if (_sectorId == -1)
|
||||
{
|
||||
DebugLog.ToConsole($"Error - {LogName} got sector of ID -1. (From deserializing transform.)", MessageType.Error);
|
||||
return;
|
||||
}
|
||||
|
||||
var sector = sectorId.GetWorldObject<QSBSector>();
|
||||
SetReferenceSector(sector);
|
||||
ReferenceSector = _sectorId.GetWorldObject<QSBSector>();
|
||||
}
|
||||
|
||||
public void SetReferenceSector(QSBSector sector)
|
||||
|
@ -36,27 +36,24 @@ namespace QSB.Syncs.Sectored.Rigidbodies
|
||||
_prevAngularVelocity = _relativeAngularVelocity;
|
||||
}
|
||||
|
||||
protected override void Serialize(NetworkWriter writer)
|
||||
protected override void Serialize(NetworkWriter writer, bool initialState)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
base.Serialize(writer, initialState);
|
||||
writer.Write(_relativeVelocity);
|
||||
writer.Write(_relativeAngularVelocity);
|
||||
}
|
||||
|
||||
protected override void Deserialize(NetworkReader reader)
|
||||
protected override void Deserialize(NetworkReader reader, bool initialState)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
base.Deserialize(reader, initialState);
|
||||
_relativeVelocity = reader.ReadVector3();
|
||||
_relativeAngularVelocity = reader.ReadVector3();
|
||||
|
||||
if (transform.position == Vector3.zero)
|
||||
{
|
||||
DebugLog.ToConsole($"Warning - {LogName} at (0,0,0)!", MessageType.Warning);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void GetFromAttached()
|
||||
{
|
||||
base.GetFromAttached();
|
||||
|
||||
if (ReferenceTransform != null)
|
||||
{
|
||||
transform.position = ReferenceTransform.ToRelPos(AttachedRigidbody.GetPosition());
|
||||
@ -75,8 +72,11 @@ namespace QSB.Syncs.Sectored.Rigidbodies
|
||||
|
||||
protected override void ApplyToAttached()
|
||||
{
|
||||
base.ApplyToAttached();
|
||||
|
||||
if (ReferenceTransform == null || transform.position == Vector3.zero)
|
||||
{
|
||||
DebugLog.ToConsole($"Warning - {LogName} at (0,0,0)!", MessageType.Warning);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -15,18 +15,19 @@ namespace QSB.Syncs.Sectored.Transforms
|
||||
protected override Transform InitAttachedTransform()
|
||||
=> hasAuthority ? InitLocalTransform() : InitRemoteTransform();
|
||||
|
||||
protected override void Deserialize(NetworkReader reader)
|
||||
protected override void Deserialize(NetworkReader reader, bool initialState)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
base.Deserialize(reader, initialState);
|
||||
|
||||
if (transform.position == Vector3.zero)
|
||||
{
|
||||
DebugLog.ToConsole($"Warning - {LogName} at (0,0,0)!", MessageType.Warning);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void GetFromAttached()
|
||||
{
|
||||
base.GetFromAttached();
|
||||
|
||||
if (ReferenceTransform != null)
|
||||
{
|
||||
transform.position = ReferenceTransform.ToRelPos(AttachedTransform.position);
|
||||
@ -41,8 +42,11 @@ namespace QSB.Syncs.Sectored.Transforms
|
||||
|
||||
protected override void ApplyToAttached()
|
||||
{
|
||||
base.ApplyToAttached();
|
||||
|
||||
if (ReferenceTransform == null || transform.position == Vector3.zero)
|
||||
{
|
||||
DebugLog.ToConsole($"Warning - {LogName} at (0,0,0)!", MessageType.Warning);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -118,9 +118,9 @@ namespace QSB.Syncs
|
||||
protected virtual void OnSceneLoaded(OWScene oldScene, OWScene newScene, bool isInUniverse) => IsInitialized = false;
|
||||
|
||||
private bool _shouldApply;
|
||||
protected override void Deserialize(NetworkReader reader)
|
||||
protected override void Deserialize(NetworkReader reader, bool initialState)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
base.Deserialize(reader, initialState);
|
||||
if (OnlyApplyOnDeserialize)
|
||||
{
|
||||
_shouldApply = true;
|
||||
@ -180,7 +180,7 @@ namespace QSB.Syncs
|
||||
return;
|
||||
}
|
||||
|
||||
if (!hasAuthority && UseInterpolation)
|
||||
if (UseInterpolation)
|
||||
{
|
||||
SmoothPosition = SmartSmoothDamp(SmoothPosition, transform.position);
|
||||
SmoothRotation = SmartSmoothDamp(SmoothRotation, transform.rotation);
|
||||
|
@ -33,16 +33,16 @@ namespace QSB.Syncs.Unsectored.Rigidbodies
|
||||
_prevAngularVelocity = _relativeAngularVelocity;
|
||||
}
|
||||
|
||||
protected override void Serialize(NetworkWriter writer)
|
||||
protected override void Serialize(NetworkWriter writer, bool initialState)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
base.Serialize(writer, initialState);
|
||||
writer.Write(_relativeVelocity);
|
||||
writer.Write(_relativeAngularVelocity);
|
||||
}
|
||||
|
||||
protected override void Deserialize(NetworkReader reader)
|
||||
protected override void Deserialize(NetworkReader reader, bool initialState)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
base.Deserialize(reader, initialState);
|
||||
_relativeVelocity = reader.ReadVector3();
|
||||
_relativeAngularVelocity = reader.ReadVector3();
|
||||
}
|
||||
|
@ -12,16 +12,16 @@ namespace QSB.Syncs.Unsectored.Transforms
|
||||
protected override Transform InitAttachedTransform()
|
||||
=> hasAuthority ? InitLocalTransform() : InitRemoteTransform();
|
||||
|
||||
protected override void Serialize(NetworkWriter writer)
|
||||
protected override void Serialize(NetworkWriter writer, bool initialState)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
base.Serialize(writer, initialState);
|
||||
writer.Write(transform.position);
|
||||
writer.Write(transform.rotation);
|
||||
}
|
||||
|
||||
protected override void Deserialize(NetworkReader reader)
|
||||
protected override void Deserialize(NetworkReader reader, bool initialState)
|
||||
{
|
||||
base.Deserialize(reader);
|
||||
base.Deserialize(reader, initialState);
|
||||
transform.position = reader.ReadVector3();
|
||||
transform.rotation = reader.ReadQuaternion();
|
||||
}
|
||||
|
@ -47,16 +47,26 @@ namespace QSB.TornadoSync.TransformSync
|
||||
.ToArray();
|
||||
}
|
||||
|
||||
protected override void SerializeInitial(NetworkWriter writer)
|
||||
protected override void Serialize(NetworkWriter writer, bool initialState)
|
||||
{
|
||||
writer.Write(_bodyIndex);
|
||||
writer.Write(_refBodyIndex);
|
||||
base.Serialize(writer, initialState);
|
||||
|
||||
if (initialState)
|
||||
{
|
||||
writer.Write(_bodyIndex);
|
||||
writer.Write(_refBodyIndex);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void DeserializeInitial(NetworkReader reader)
|
||||
protected override void Deserialize(NetworkReader reader, bool initialState)
|
||||
{
|
||||
_bodyIndex = reader.ReadInt();
|
||||
_refBodyIndex = reader.ReadInt();
|
||||
base.Deserialize(reader, initialState);
|
||||
|
||||
if (initialState)
|
||||
{
|
||||
_bodyIndex = reader.ReadInt();
|
||||
_refBodyIndex = reader.ReadInt();
|
||||
}
|
||||
}
|
||||
|
||||
protected override void ApplyToAttached()
|
||||
|
@ -10,15 +10,13 @@ namespace QSB.Utility
|
||||
|
||||
private double _lastSendTime;
|
||||
|
||||
protected virtual void SerializeInitial(NetworkWriter writer) { }
|
||||
protected virtual void DeserializeInitial(NetworkReader reader) { }
|
||||
|
||||
public sealed override bool OnSerialize(NetworkWriter writer, bool initialState)
|
||||
{
|
||||
var changed = base.OnSerialize(writer, initialState);
|
||||
if (initialState && isServer)
|
||||
{
|
||||
SerializeInitial(writer);
|
||||
Serialize(writer, true);
|
||||
UpdatePrevData();
|
||||
}
|
||||
|
||||
return changed;
|
||||
@ -29,14 +27,15 @@ namespace QSB.Utility
|
||||
base.OnDeserialize(reader, initialState);
|
||||
if (initialState && !isServer)
|
||||
{
|
||||
DeserializeInitial(reader);
|
||||
UpdatePrevData();
|
||||
Deserialize(reader, true);
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract bool HasChanged();
|
||||
protected abstract void UpdatePrevData();
|
||||
protected abstract void Serialize(NetworkWriter writer);
|
||||
protected abstract void Deserialize(NetworkReader reader);
|
||||
protected abstract void Serialize(NetworkWriter writer, bool initialState);
|
||||
protected abstract void Deserialize(NetworkReader reader, bool initialState);
|
||||
|
||||
protected virtual void Update()
|
||||
{
|
||||
@ -65,7 +64,7 @@ namespace QSB.Utility
|
||||
}
|
||||
|
||||
using var writer = NetworkWriterPool.GetWriter();
|
||||
Serialize(writer);
|
||||
Serialize(writer, false);
|
||||
UpdatePrevData();
|
||||
|
||||
var data = writer.ToArraySegment();
|
||||
@ -96,7 +95,7 @@ namespace QSB.Utility
|
||||
{
|
||||
using var reader = NetworkReaderPool.GetReader(data);
|
||||
UpdatePrevData();
|
||||
Deserialize(reader);
|
||||
Deserialize(reader, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ namespace QSB.Utility.VariableSync
|
||||
|
||||
protected override bool HasChanged() => Value != _prevValue;
|
||||
protected override void UpdatePrevData() => _prevValue = Value;
|
||||
protected override void Serialize(NetworkWriter writer) => writer.Write(Value);
|
||||
protected override void Deserialize(NetworkReader reader) => Value = reader.Read<bool>();
|
||||
protected override void Serialize(NetworkWriter writer, bool initialState) => writer.Write(Value);
|
||||
protected override void Deserialize(NetworkReader reader, bool initialState) => Value = reader.Read<bool>();
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ namespace QSB.Utility.VariableSync
|
||||
|
||||
protected override bool HasChanged() => Value != _prevValue;
|
||||
protected override void UpdatePrevData() => _prevValue = Value;
|
||||
protected override void Serialize(NetworkWriter writer) => writer.Write(Value);
|
||||
protected override void Deserialize(NetworkReader reader) => Value = reader.Read<float>();
|
||||
protected override void Serialize(NetworkWriter writer, bool initialState) => writer.Write(Value);
|
||||
protected override void Deserialize(NetworkReader reader, bool initialState) => Value = reader.Read<float>();
|
||||
}
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ namespace QSB.Utility.VariableSync
|
||||
|
||||
protected override bool HasChanged() => Value != _prevValue;
|
||||
protected override void UpdatePrevData() => _prevValue = Value;
|
||||
protected override void Serialize(NetworkWriter writer) => writer.Write(Value);
|
||||
protected override void Deserialize(NetworkReader reader) => Value = reader.Read<Vector3>();
|
||||
protected override void Serialize(NetworkWriter writer, bool initialState) => writer.Write(Value);
|
||||
protected override void Deserialize(NetworkReader reader, bool initialState) => Value = reader.Read<Vector3>();
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user