r2mods/ilspy_dump/ror2_csproj/JobCleaner.cs

59 lines
1.1 KiB
C#

using System.Collections.Generic;
using UnityEngine;
public class JobCleaner : MonoBehaviour
{
public static JobCleaner instance;
public List<JobWrapper> jobsToClean;
private void Awake()
{
if (instance == null)
{
instance = this;
}
jobsToClean = new List<JobWrapper>();
}
private void OnDestroy()
{
if (instance == this)
{
instance = null;
}
if (jobsToClean.Count <= 0)
{
return;
}
Debug.LogError("JOBCLEANER HAS JOBS TO CLEAN BEFORE BEING DESTROYED");
while (jobsToClean.Count > 0)
{
for (int num = jobsToClean.Count - 1; num >= 0; num--)
{
if (jobsToClean[num].handle.IsCompleted)
{
jobsToClean[num].handle.Complete();
jobsToClean[num].Dispose();
jobsToClean.RemoveAt(num);
}
}
}
Debug.LogError("JOBCLEANER FINISHED CLEANING JOBS, CAN DIE HAPPY NOW");
}
private void LateUpdate()
{
if (jobsToClean.Count > 0)
{
int index = jobsToClean.Count - 1;
if (jobsToClean[index].handle.IsCompleted)
{
jobsToClean[index].handle.Complete();
jobsToClean[index].Dispose();
jobsToClean.RemoveAt(index);
}
}
}
}