Files
Nitrox/NitroxClient/GameLogic/InitialSync/RemotePlayerInitialSyncProcessor.cs
2025-07-06 00:23:46 +02:00

39 lines
1.1 KiB
C#

using System.Collections;
using NitroxClient.GameLogic.InitialSync.Abstract;
using NitroxModel.MultiplayerSession;
using NitroxModel.Packets;
namespace NitroxClient.GameLogic.InitialSync;
/// <summary>
/// Makes sure the remote player object is loaded.
/// </summary>
/// <remarks>
/// This allows for the remote player to:<br/>
/// - use equipment
/// </remarks>
public sealed class RemotePlayerInitialSyncProcessor : InitialSyncProcessor
{
private readonly PlayerManager remotePlayerManager;
public RemotePlayerInitialSyncProcessor(PlayerManager remotePlayerManager)
{
this.remotePlayerManager = remotePlayerManager;
}
public override IEnumerator Process(InitialPlayerSync packet, WaitScreen.ManualWaitItem waitScreenItem)
{
int remotePlayersSynced = 0;
foreach (PlayerContext otherPlayer in packet.OtherPlayers)
{
waitScreenItem.SetProgress(remotePlayersSynced, packet.OtherPlayers.Count);
remotePlayerManager.Create(otherPlayer);
remotePlayersSynced++;
yield return null;
}
}
}