diff --git a/QSB/Anglerfish/TransformSync/AnglerTransformSync.cs b/QSB/Anglerfish/TransformSync/AnglerTransformSync.cs index a073503f..4745572d 100644 --- a/QSB/Anglerfish/TransformSync/AnglerTransformSync.cs +++ b/QSB/Anglerfish/TransformSync/AnglerTransformSync.cs @@ -19,10 +19,10 @@ namespace QSB.Anglerfish.TransformSync protected override OWRigidbody InitAttachedRigidbody() => _qsbAngler.AttachedObject._anglerBody; - public override void Start() + public override void OnStartClient() { _instances.Add(this); - base.Start(); + base.OnStartClient(); } protected override void OnDestroy() diff --git a/QSB/JellyfishSync/TransformSync/JellyfishTransformSync.cs b/QSB/JellyfishSync/TransformSync/JellyfishTransformSync.cs index d53591e7..3e5ba4d8 100644 --- a/QSB/JellyfishSync/TransformSync/JellyfishTransformSync.cs +++ b/QSB/JellyfishSync/TransformSync/JellyfishTransformSync.cs @@ -21,10 +21,10 @@ namespace QSB.JellyfishSync.TransformSync protected override OWRigidbody InitAttachedRigidbody() => _qsbJellyfish.AttachedObject._jellyfishBody; - public override void Start() + public override void OnStartClient() { _instances.Add(this); - base.Start(); + base.OnStartClient(); } protected override void OnDestroy() diff --git a/QSB/OrbSync/TransformSync/NomaiOrbTransformSync.cs b/QSB/OrbSync/TransformSync/NomaiOrbTransformSync.cs index 17f36aab..8804c6a7 100644 --- a/QSB/OrbSync/TransformSync/NomaiOrbTransformSync.cs +++ b/QSB/OrbSync/TransformSync/NomaiOrbTransformSync.cs @@ -22,10 +22,10 @@ namespace QSB.OrbSync.TransformSync private QSBOrb _qsbOrb; private static readonly List _instances = new(); - public override void Start() + public override void OnStartClient() { _instances.Add(this); - base.Start(); + base.OnStartClient(); } protected override void OnDestroy() diff --git a/QSB/Player/TransformSync/PlayerTransformSync.cs b/QSB/Player/TransformSync/PlayerTransformSync.cs index 4a7e1cf8..35f80860 100644 --- a/QSB/Player/TransformSync/PlayerTransformSync.cs +++ b/QSB/Player/TransformSync/PlayerTransformSync.cs @@ -43,25 +43,23 @@ namespace QSB.Player.TransformSync private Transform GetStickPivot() => QSBWorldSync.GetUnityObjects().First().transform.Find("Stick_Root/Stick_Pivot"); - public override void Start() + public override void OnStartClient() { - if (isLocalPlayer) - { - LocalInstance = this; - } - var player = new PlayerInfo(this); QSBPlayerManager.PlayerList.SafeAdd(player); - base.Start(); + base.OnStartClient(); QSBPlayerManager.OnAddPlayer?.Invoke(Player); DebugLog.DebugWrite($"Create Player : id<{Player.PlayerId}>", MessageType.Info); } + public override void OnStartLocalPlayer() => LocalInstance = this; + protected override void OnSceneLoaded(OWScene oldScene, OWScene newScene, bool isInUniverse) { if (!hasAuthority) { base.OnSceneLoaded(oldScene, newScene, isInUniverse); + return; } if (isInUniverse && !IsInitialized) diff --git a/QSB/ShipSync/TransformSync/ShipTransformSync.cs b/QSB/ShipSync/TransformSync/ShipTransformSync.cs index 9876dbc2..15592695 100644 --- a/QSB/ShipSync/TransformSync/ShipTransformSync.cs +++ b/QSB/ShipSync/TransformSync/ShipTransformSync.cs @@ -15,9 +15,9 @@ namespace QSB.ShipSync.TransformSync protected override bool IsReady => Locator.GetShipBody() != null; - public override void Start() + public override void OnStartClient() { - base.Start(); + base.OnStartClient(); LocalInstance = this; } diff --git a/QSB/Syncs/Sectored/BaseSectoredSync.cs b/QSB/Syncs/Sectored/BaseSectoredSync.cs index 37daa440..2c2bc0df 100644 --- a/QSB/Syncs/Sectored/BaseSectoredSync.cs +++ b/QSB/Syncs/Sectored/BaseSectoredSync.cs @@ -14,11 +14,11 @@ namespace QSB.Syncs.Sectored private int _sectorId = -1; - public override void Start() + public override void OnStartClient() { SectorSync = gameObject.AddComponent(); QSBSectorManager.Instance.TransformSyncs.Add(this); - base.Start(); + base.OnStartClient(); } protected override void OnDestroy() diff --git a/QSB/Syncs/SyncBase.cs b/QSB/Syncs/SyncBase.cs index 48e622b4..694fee81 100644 --- a/QSB/Syncs/SyncBase.cs +++ b/QSB/Syncs/SyncBase.cs @@ -88,7 +88,7 @@ namespace QSB.Syncs protected abstract void GetFromAttached(); protected abstract void ApplyToAttached(); - public virtual void Start() + public override void OnStartClient() { if (IsPlayerObject) { @@ -144,6 +144,11 @@ namespace QSB.Syncs protected sealed override void Update() { + if (!isClient) + { + return; + } + if (!IsInitialized && IsReady && _baseIsReady) { try diff --git a/QSB/WorldSync/QSBWorldSync.cs b/QSB/WorldSync/QSBWorldSync.cs index 02bd4d51..881cf12a 100644 --- a/QSB/WorldSync/QSBWorldSync.cs +++ b/QSB/WorldSync/QSBWorldSync.cs @@ -26,8 +26,6 @@ namespace QSB.WorldSync public static void BuildWorldObjects(OWScene scene) { - GameInit(); - if (PlayerTransformSync.LocalInstance == null) { DebugLog.ToConsole($"Warning - Tried to build WorldObjects when LocalPlayer is not ready! Building when ready...", MessageType.Warning); @@ -35,6 +33,8 @@ namespace QSB.WorldSync return; } + GameInit(); + DoBuild(scene); }