mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-03-02 19:13:34 +00:00
zoinks
This commit is contained in:
parent
5b8f51afdd
commit
1f4c06561b
QSB
Anglerfish/TransformSync
JellyfishSync/TransformSync
OrbSync/TransformSync
Player/TransformSync
ShipSync/TransformSync
Syncs
Tools/ProbeTool/TransformSync
TornadoSync/TransformSync
@ -10,9 +10,9 @@ namespace QSB.Anglerfish.TransformSync
|
||||
{
|
||||
public class AnglerTransformSync : UnsectoredRigidbodySync
|
||||
{
|
||||
public override bool IsReady => WorldObjectManager.AllObjectsAdded;
|
||||
public override bool UseInterpolation => false;
|
||||
public override bool IsPlayerObject => false;
|
||||
protected override bool IsReady => WorldObjectManager.AllObjectsAdded;
|
||||
protected override bool UseInterpolation => false;
|
||||
protected override bool IsPlayerObject => false;
|
||||
|
||||
private QSBAngler _qsbAngler;
|
||||
private static readonly List<AnglerTransformSync> _instances = new();
|
||||
@ -97,8 +97,7 @@ namespace QSB.Anglerfish.TransformSync
|
||||
protected override void OnRenderObject()
|
||||
{
|
||||
if (!QSBCore.ShowLinesInDebug
|
||||
|| !WorldObjectManager.AllObjectsReady
|
||||
|| !IsReady
|
||||
|| !IsInitialized
|
||||
|| AttachedRigidbody == null
|
||||
|| AttachedRigidbody.IsSuspended())
|
||||
{
|
||||
|
@ -11,9 +11,9 @@ namespace QSB.JellyfishSync.TransformSync
|
||||
{
|
||||
public class JellyfishTransformSync : UnsectoredRigidbodySync
|
||||
{
|
||||
public override bool IsReady => WorldObjectManager.AllObjectsAdded;
|
||||
public override bool UseInterpolation => false;
|
||||
public override bool IsPlayerObject => false;
|
||||
protected override bool IsReady => WorldObjectManager.AllObjectsAdded;
|
||||
protected override bool UseInterpolation => false;
|
||||
protected override bool IsPlayerObject => false;
|
||||
|
||||
private QSBJellyfish _qsbJellyfish;
|
||||
private static readonly List<JellyfishTransformSync> _instances = new();
|
||||
@ -144,8 +144,7 @@ namespace QSB.JellyfishSync.TransformSync
|
||||
protected override void OnRenderObject()
|
||||
{
|
||||
if (!QSBCore.ShowLinesInDebug
|
||||
|| !WorldObjectManager.AllObjectsReady
|
||||
|| !IsReady
|
||||
|| !IsInitialized
|
||||
|| AttachedRigidbody == null
|
||||
|| ReferenceTransform == null
|
||||
|| AttachedRigidbody.IsSuspended())
|
||||
|
@ -11,9 +11,9 @@ namespace QSB.OrbSync.TransformSync
|
||||
{
|
||||
public class NomaiOrbTransformSync : UnsectoredTransformSync
|
||||
{
|
||||
public override bool IsReady => WorldObjectManager.AllObjectsAdded;
|
||||
public override bool UseInterpolation => true;
|
||||
public override bool IsPlayerObject => false;
|
||||
protected override bool IsReady => WorldObjectManager.AllObjectsAdded;
|
||||
protected override bool UseInterpolation => true;
|
||||
protected override bool IsPlayerObject => false;
|
||||
protected override float DistanceLeeway => 1f;
|
||||
|
||||
protected override Transform InitLocalTransform() => _qsbOrb.AttachedObject.transform;
|
||||
|
@ -15,7 +15,7 @@ namespace QSB.Player.TransformSync
|
||||
{
|
||||
public class PlayerTransformSync : SectoredTransformSync
|
||||
{
|
||||
public override bool IsPlayerObject => true;
|
||||
protected override bool IsPlayerObject => true;
|
||||
|
||||
private Transform _visibleCameraRoot;
|
||||
private Transform _networkCameraRoot => gameObject.transform.GetChild(0);
|
||||
@ -267,8 +267,7 @@ namespace QSB.Player.TransformSync
|
||||
base.OnRenderObject();
|
||||
|
||||
if (!QSBCore.ShowLinesInDebug
|
||||
|| !WorldObjectManager.AllObjectsReady
|
||||
|| !IsReady
|
||||
|| !IsInitialized
|
||||
|| ReferenceTransform == null)
|
||||
{
|
||||
return;
|
||||
@ -286,12 +285,12 @@ namespace QSB.Player.TransformSync
|
||||
Popcron.Gizmos.Cube(_visibleCameraRoot.position, _visibleCameraRoot.rotation, Vector3.one / 4, Color.grey);
|
||||
}
|
||||
|
||||
public override bool IsReady
|
||||
protected override bool IsReady
|
||||
=> AttachedTransform != null
|
||||
|| Locator.GetPlayerTransform() != null;
|
||||
|
||||
public static PlayerTransformSync LocalInstance { get; private set; }
|
||||
|
||||
public override bool UseInterpolation => true;
|
||||
protected override bool UseInterpolation => true;
|
||||
}
|
||||
}
|
||||
|
@ -10,12 +10,12 @@ namespace QSB.ShipSync.TransformSync
|
||||
{
|
||||
public static ShipTransformSync LocalInstance { get; private set; }
|
||||
|
||||
public override bool IsPlayerObject => false;
|
||||
protected override bool IsPlayerObject => false;
|
||||
|
||||
private const int ForcePositionAfterUpdates = 50;
|
||||
private int _updateCount;
|
||||
|
||||
public override bool IsReady
|
||||
protected override bool IsReady
|
||||
=> Locator.GetShipBody() != null;
|
||||
|
||||
public override void Start()
|
||||
@ -94,6 +94,6 @@ namespace QSB.ShipSync.TransformSync
|
||||
rigidbody._currentVelocity = newVelocity;
|
||||
}
|
||||
|
||||
public override bool UseInterpolation => false;
|
||||
protected override bool UseInterpolation => false;
|
||||
}
|
||||
}
|
||||
|
@ -9,8 +9,8 @@ namespace QSB.Syncs.Sectored
|
||||
{
|
||||
public abstract class BaseSectoredSync : SyncBase
|
||||
{
|
||||
public override bool AllowDisabledAttachedObject => false;
|
||||
public override bool AllowNullReferenceTransform => true;
|
||||
protected override bool AllowDisabledAttachedObject => false;
|
||||
protected override bool AllowNullReferenceTransform => true;
|
||||
|
||||
public QSBSector ReferenceSector { get; private set; }
|
||||
public SectorSync.SectorSync SectorSync { get; private set; }
|
||||
@ -38,18 +38,6 @@ namespace QSB.Syncs.Sectored
|
||||
SetReferenceSector(null);
|
||||
}
|
||||
|
||||
protected override void Update()
|
||||
{
|
||||
if (ReferenceSector != null && ReferenceSector.Transform != ReferenceTransform)
|
||||
{
|
||||
DebugLog.ToConsole($"Warning - {LogName} : ReferenceSector.Transform was different to ReferenceTransform. Correcting...", MessageType.Warning);
|
||||
SetReferenceTransform(ReferenceSector.Transform);
|
||||
}
|
||||
|
||||
// todo all the check in base
|
||||
base.Update();
|
||||
}
|
||||
|
||||
protected override void Serialize(NetworkWriter writer)
|
||||
{
|
||||
base.Serialize(writer);
|
||||
|
@ -7,7 +7,7 @@ namespace QSB.Syncs.Sectored.Rigidbodies
|
||||
{
|
||||
public abstract class SectoredRigidbodySync : BaseSectoredSync
|
||||
{
|
||||
public override bool DestroyAttachedObject => false;
|
||||
protected override bool DestroyAttachedObject => false;
|
||||
|
||||
public const float PositionMovedThreshold = 0.05f;
|
||||
public const float AngleRotatedThreshold = 0.05f;
|
||||
|
@ -8,7 +8,7 @@ namespace QSB.Syncs.Sectored.Transforms
|
||||
{
|
||||
public abstract class SectoredTransformSync : BaseSectoredSync
|
||||
{
|
||||
public override bool DestroyAttachedObject => true;
|
||||
protected override bool DestroyAttachedObject => true;
|
||||
|
||||
protected abstract Transform InitLocalTransform();
|
||||
protected abstract Transform InitRemoteTransform();
|
||||
|
@ -46,12 +46,13 @@ namespace QSB.Syncs
|
||||
}
|
||||
}
|
||||
|
||||
public abstract bool IsReady { get; }
|
||||
public abstract bool UseInterpolation { get; }
|
||||
public abstract bool AllowDisabledAttachedObject { get; }
|
||||
public abstract bool AllowNullReferenceTransform { get; }
|
||||
public abstract bool DestroyAttachedObject { get; }
|
||||
public abstract bool IsPlayerObject { get; }
|
||||
protected abstract bool IsReady { get; }
|
||||
protected abstract bool UseInterpolation { get; }
|
||||
protected abstract bool AllowDisabledAttachedObject { get; }
|
||||
protected abstract bool AllowNullReferenceTransform { get; }
|
||||
protected abstract bool DestroyAttachedObject { get; }
|
||||
protected abstract bool IsPlayerObject { get; }
|
||||
protected virtual bool OnlyUpdateOnDeserialize => false;
|
||||
|
||||
public Transform AttachedTransform { get; private set; }
|
||||
public Transform ReferenceTransform { get; private set; }
|
||||
@ -69,6 +70,8 @@ namespace QSB.Syncs
|
||||
protected Quaternion SmoothRotation;
|
||||
|
||||
protected abstract Transform InitAttachedTransform();
|
||||
// protected abstract bool GetFromAttached();
|
||||
// protected abstract bool ApplyToAttached();
|
||||
protected abstract bool UpdateTransform();
|
||||
|
||||
public virtual void Start()
|
||||
@ -114,7 +117,7 @@ namespace QSB.Syncs
|
||||
|
||||
protected virtual void OnSceneLoaded(OWScene oldScene, OWScene newScene, bool isInUniverse) => IsInitialized = false;
|
||||
|
||||
protected override void Update()
|
||||
protected sealed override void Update()
|
||||
{
|
||||
if (!IsInitialized && IsReady && _baseIsReady)
|
||||
{
|
||||
|
@ -2,8 +2,8 @@
|
||||
{
|
||||
public abstract class BaseUnsectoredSync : SyncBase
|
||||
{
|
||||
public override bool AllowDisabledAttachedObject => false;
|
||||
public override bool AllowNullReferenceTransform => false;
|
||||
public override bool DestroyAttachedObject => false;
|
||||
protected override bool AllowDisabledAttachedObject => false;
|
||||
protected override bool AllowNullReferenceTransform => false;
|
||||
protected override bool DestroyAttachedObject => false;
|
||||
}
|
||||
}
|
||||
|
@ -11,9 +11,9 @@ namespace QSB.Tools.ProbeTool.TransformSync
|
||||
public class PlayerProbeSync : SectoredTransformSync
|
||||
{
|
||||
protected override float DistanceLeeway => 10f;
|
||||
public override bool UseInterpolation => true;
|
||||
public override bool AllowDisabledAttachedObject => true;
|
||||
public override bool IsPlayerObject => true;
|
||||
protected override bool UseInterpolation => true;
|
||||
protected override bool AllowDisabledAttachedObject => true;
|
||||
protected override bool IsPlayerObject => true;
|
||||
|
||||
public static PlayerProbeSync LocalInstance { get; private set; }
|
||||
|
||||
@ -111,6 +111,6 @@ namespace QSB.Tools.ProbeTool.TransformSync
|
||||
return true;
|
||||
}
|
||||
|
||||
public override bool IsReady => AttachedTransform != null || Locator.GetProbe() != null;
|
||||
protected override bool IsReady => AttachedTransform != null || Locator.GetProbe() != null;
|
||||
}
|
||||
}
|
||||
|
@ -13,11 +13,11 @@ namespace QSB.TornadoSync.TransformSync
|
||||
{
|
||||
public class OccasionalTransformSync : UnsectoredRigidbodySync
|
||||
{
|
||||
public override bool IsReady => WorldObjectManager.AllObjectsReady
|
||||
protected override bool IsReady => WorldObjectManager.AllObjectsReady
|
||||
&& CenterOfTheUniverse.s_rigidbodies.IsInRange(_bodyIndex)
|
||||
&& CenterOfTheUniverse.s_rigidbodies.IsInRange(_refBodyIndex);
|
||||
public override bool UseInterpolation => false;
|
||||
public override bool IsPlayerObject => false;
|
||||
protected override bool UseInterpolation => false;
|
||||
protected override bool IsPlayerObject => false;
|
||||
|
||||
protected override OWRigidbody InitAttachedRigidbody() => CenterOfTheUniverse.s_rigidbodies[_bodyIndex];
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user