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

36 lines
1.1 KiB
C#

using System.Collections;
using NitroxClient.GameLogic.InitialSync.Abstract;
using NitroxModel.DataStructures;
using NitroxModel.Packets;
namespace NitroxClient.GameLogic.InitialSync;
public sealed class SimulationOwnershipInitialSyncProcessor : InitialSyncProcessor
{
private readonly SimulationOwnership simulationOwnership;
public SimulationOwnershipInitialSyncProcessor(SimulationOwnership simulationOwnership)
{
this.simulationOwnership = simulationOwnership;
AddDependency<GlobalRootInitialSyncProcessor>();
}
public override IEnumerator Process(InitialPlayerSync packet, WaitScreen.ManualWaitItem waitScreenItem)
{
int entitiesSynced = 0;
foreach (SimulatedEntity simulatedEntity in packet.InitialSimulationOwnerships)
{
simulationOwnership.TreatSimulatedEntity(simulatedEntity);
if (entitiesSynced++ % 5 == 0)
{
waitScreenItem.SetProgress(entitiesSynced, packet.InitialSimulationOwnerships.Count);
yield return null;
}
}
yield break;
}
}