extra checks in PlayerTransformSync

This commit is contained in:
Mister_Nebula 2022-08-14 20:22:14 +01:00
parent 7dab6f2a3e
commit 3af82705ff

View File

@ -8,6 +8,7 @@ using QSB.Syncs.Sectored.Transforms;
using QSB.Utility; using QSB.Utility;
using System.Linq; using System.Linq;
using UnityEngine; using UnityEngine;
using UnityEngine.SocialPlatforms;
using Gizmos = Popcron.Gizmos; using Gizmos = Popcron.Gizmos;
namespace QSB.Player.TransformSync; namespace QSB.Player.TransformSync;
@ -29,8 +30,17 @@ public class PlayerTransformSync : SectoredTransformSync
private Transform _visibleStickTip; private Transform _visibleStickTip;
private Transform _networkStickTip => _networkStickPivot.GetChild(0); private Transform _networkStickTip => _networkStickPivot.GetChild(0);
private bool _hasRanOnStartClient;
public override void OnStartClient() public override void OnStartClient()
{ {
if (_hasRanOnStartClient)
{
DebugLog.ToConsole($"ERROR - OnStartClient is being called AGAIN for {Player.PlayerId}'s PlayerTransformSync!", MessageType.Error);
return;
}
_hasRanOnStartClient = true;
var player = new PlayerInfo(this); var player = new PlayerInfo(this);
QSBPlayerManager.PlayerList.SafeAdd(player); QSBPlayerManager.PlayerList.SafeAdd(player);
base.OnStartClient(); base.OnStartClient();
@ -40,7 +50,26 @@ public class PlayerTransformSync : SectoredTransformSync
JoinLeaveSingularity.Create(Player, true); JoinLeaveSingularity.Create(Player, true);
} }
public override void OnStartLocalPlayer() => LocalInstance = this; public override void OnStartLocalPlayer()
{
base.OnStartLocalPlayer();
if (LocalInstance != null)
{
DebugLog.ToConsole($"ERROR - LocalInstance is already non-null in OnStartLocalPlayer!", MessageType.Error);
Destroy(this);
return;
}
LocalInstance = this;
}
public override void OnStopLocalPlayer()
{
base.OnStopLocalPlayer();
LocalInstance = null;
}
public override void OnStopClient() public override void OnStopClient()
{ {