Files
Studio/Assets/Scripts/Examples/AutoFactory/StackerCraneNeedsScanner.cs

56 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
namespace Studio.VirtualFactory
{
public class StackerCraneNeedsScanner : NeedsScanner
{
private readonly VirtualFactoryManager vfManager;
private readonly StackerCraneManager stackerCraneManager;
public StackerCraneNeedsScanner(VirtualFactoryManager vfManager, StackerCraneManager stackerCraneManager)
{
this.vfManager = vfManager;
this.stackerCraneManager = stackerCraneManager;
}
public override void Scanning()
{
CheckInputLoadNeeds();
CheckStackingTaskNeeds();
CheckLoadOutTaskNeeds();
ScanningComplete();
}
void CheckLoadOutTaskNeeds()
{
if(stackerCraneManager.TryGetUnloaderbleStacker(out List<StackerCrane> cranes))
{
for (int i = 0; i < cranes.Count; ++i)
{
needs.Add(FactoryNeeds.StackerLoadOut);
}
}
}
private void CheckStackingTaskNeeds()
{
if(stackerCraneManager.TryGetStackerbleStackerCranes(out var cranes))
{
for(int i =0;i<cranes.Count; ++i)
{
needs.Add(FactoryNeeds.Stacking);
}
}
}
private void CheckInputLoadNeeds()
{
if(stackerCraneManager.TryGetEmptyInputStackerCranes(out var cranes))
{
for (int i = 0; i < cranes.Count; ++i)
needs.Add(FactoryNeeds.StackerInputLoad);
}
}
}
}