OnAddPlayer and OnRemovePlayer use PlayerInfo instead of PlayerId

This commit is contained in:
JohnCorby 2022-01-11 23:12:04 -08:00
parent aebe34f746
commit 3064838e06
7 changed files with 14 additions and 15 deletions

View File

@ -26,9 +26,9 @@ namespace QSB.EyeOfTheUniverse.CosmicInflation
QSBPlayerManager.OnRemovePlayer += OnPlayerLeave;
}
private void OnPlayerLeave(uint id)
private void OnPlayerLeave(PlayerInfo player)
{
_playersInFog.Remove(QSBPlayerManager.GetPlayer(id));
_playersInFog.Remove(player);
// wait 1 frame for player to be removed
QSBCore.UnityEvents.FireOnNextUpdate(() =>

View File

@ -23,7 +23,7 @@ namespace QSB.EyeOfTheUniverse.MaskSync
base.Awake();
Instance = this;
QSBPlayerManager.OnRemovePlayer += OnPlayerLeave;
// QSBPlayerManager.OnRemovePlayer += OnPlayerLeave;
}
private static void OnPlayerLeave(uint obj)

View File

@ -56,9 +56,9 @@ namespace QSB.ItemSync.WorldObjects.Items
public override void OnRemoval() => QSBPlayerManager.OnRemovePlayer -= OnPlayerLeave;
private void OnPlayerLeave(uint player)
private void OnPlayerLeave(PlayerInfo player)
{
if (HoldingPlayer != player)
if (HoldingPlayer != player.PlayerId)
{
return;
}

View File

@ -32,11 +32,11 @@ namespace QSB.Player
/// <summary>
/// called right after player is added
/// </summary>
public static Action<uint> OnAddPlayer;
public static Action<PlayerInfo> OnAddPlayer;
/// <summary>
/// called right before player is removed
/// </summary>
public static Action<uint> OnRemovePlayer;
public static Action<PlayerInfo> OnRemovePlayer;
public static readonly List<PlayerInfo> PlayerList = new();

View File

@ -50,7 +50,7 @@ namespace QSB.Player.TransformSync
var player = new PlayerInfo(this);
QSBPlayerManager.PlayerList.SafeAdd(player);
base.Start();
QSBPlayerManager.OnAddPlayer?.Invoke(Player.PlayerId);
QSBPlayerManager.OnAddPlayer?.Invoke(Player);
DebugLog.DebugWrite($"Create Player : id<{Player.PlayerId}>", MessageType.Info);
}
@ -87,7 +87,7 @@ namespace QSB.Player.TransformSync
protected override void OnDestroy()
{
// TODO : Maybe move this to a leave event...? Would ensure everything could finish up before removing the player
QSBPlayerManager.OnRemovePlayer?.Invoke(Player.PlayerId);
QSBPlayerManager.OnRemovePlayer?.Invoke(Player);
base.OnDestroy();
Player.HudMarker?.Remove();
QSBPlayerManager.PlayerList.Remove(Player);

View File

@ -673,14 +673,13 @@ namespace QSB.PoolSync
public bool IsPlatformActive() => _platformActive;
public void OnRemovePlayer(uint id)
public void OnRemovePlayer(PlayerInfo player)
{
if (id == QSBPlayerManager.LocalPlayerId)
if (player == QSBPlayerManager.LocalPlayer)
{
return;
}
var player = QSBPlayerManager.GetPlayer(id);
if (!_playerToHologram.Any(x => x.Key == player))
{
return;
@ -689,7 +688,7 @@ namespace QSB.PoolSync
var hologram = _playerToHologram.First(x => x.Key == player).Value;
if (hologram.activeSelf)
{
OnRemotePlayerExit(id);
OnRemotePlayerExit(player.PlayerId);
}
_playerToHologram.Remove(player);

View File

@ -47,7 +47,7 @@ namespace QSB.QuantumSync
}
}
public void PlayerLeave(uint playerId)
public void PlayerLeave(PlayerInfo player)
{
if (!QSBCore.IsHost)
{
@ -56,7 +56,7 @@ namespace QSB.QuantumSync
foreach (var obj in QSBWorldSync.GetWorldObjects<IQSBQuantumObject>())
{
if (obj.ControllingPlayer == playerId)
if (obj.ControllingPlayer == player.PlayerId)
{
obj.SendMessage(new QuantumAuthorityMessage(obj.IsEnabled ? QSBPlayerManager.LocalPlayerId : 0u));
}