RizzeBattleRoyale/Assets/TPSBR/Scripts/Gameplay/KCC/BRPlatformProcessorUpdater.cs
2025-09-24 11:24:38 +05:00

61 lines
1.3 KiB
C#

namespace TPSBR
{
using System;
using System.Collections.Generic;
using UnityEngine;
using Fusion;
// !!! WARNING !!!
// This updater is a 1:1 copy of default PlatformProcessorUpdater except it supports BRPlatformProcessor instead of PlatformProcessor.
// !!! WARNING !!!
/// <summary>
/// Used to update BRPlatformProcessor instances independently of their Object.IsInSimulation state.
/// </summary>
[DefaultExecutionOrder(BRPlatformProcessor.EXECUTION_ORDER)]
public unsafe class BRPlatformProcessorUpdater : SimulationBehaviour
{
private HashSet<BRPlatformProcessor> _processors = new HashSet<BRPlatformProcessor>();
public void Register(BRPlatformProcessor processor)
{
_processors.Add(processor);
}
public void Unregister(BRPlatformProcessor processor)
{
_processors.Remove(processor);
}
public override void FixedUpdateNetwork()
{
foreach (BRPlatformProcessor processor in _processors)
{
try
{
processor.ProcessFixedUpdate();
}
catch (Exception exception)
{
Debug.LogException(exception);
}
}
}
public override void Render()
{
foreach (BRPlatformProcessor processor in _processors)
{
try
{
processor.ProcessRender();
}
catch (Exception exception)
{
Debug.LogException(exception);
}
}
}
}
}