88 lines
2.1 KiB
C#
88 lines
2.1 KiB
C#
using Simulator.Data.Transport;
|
|
using System;
|
|
using UnityEngine;
|
|
using UVC.Core;
|
|
|
|
public class PlayerPropertyDataBase : SingletonScene<PlayerPropertyDataBase>
|
|
{
|
|
public PlayPropertyData data=new PlayPropertyData();
|
|
public event Action<PlayPropertyData> onPlay;
|
|
public static bool isPlaying = false;
|
|
|
|
public void PlayFunc()
|
|
{
|
|
onPlay?.Invoke(data);
|
|
isPlaying = true;
|
|
}
|
|
public void CollectGenerateData(int count)
|
|
{
|
|
data.total_Generate += count;
|
|
}
|
|
|
|
public void CollectUseData(int count)
|
|
{
|
|
data.total_Use += count;
|
|
}
|
|
|
|
public void CollectTotalAGVData(int count)
|
|
{
|
|
data.agv_Total += count;
|
|
}
|
|
|
|
public void CollectMovingAGVData(int count)
|
|
{
|
|
data.agv_Moving += count;
|
|
}
|
|
|
|
public void CollectIdleData(int count)
|
|
{
|
|
data.agv_Idle += count;
|
|
}
|
|
|
|
public void CollectLoadingData(int count)
|
|
{
|
|
data.agv_Loading += count;
|
|
}
|
|
|
|
public void CollectSpawnAGV(AGV agv)
|
|
{
|
|
CollectTotalAGVData(1);
|
|
CollectIdleData(1);
|
|
agv.onStateUpdated += CollectChangeAGVStateData;
|
|
}
|
|
|
|
public void CollectChangeAGVStateData(AGVDataType before, AGVDataType after)
|
|
{
|
|
switch (before)
|
|
{
|
|
case AGVDataType.Idle:
|
|
CollectIdleData(-1);
|
|
break;
|
|
case AGVDataType.LoadingStart:
|
|
CollectLoadingData(-1);
|
|
break;
|
|
case AGVDataType.UnLoadingStart:
|
|
CollectLoadingData(-1);
|
|
break;
|
|
case AGVDataType.Moving:
|
|
CollectMovingAGVData(-1);
|
|
break;
|
|
}
|
|
switch (after)
|
|
{
|
|
case AGVDataType.Idle:
|
|
CollectIdleData(1);
|
|
break;
|
|
case AGVDataType.LoadingStart:
|
|
CollectLoadingData(1);
|
|
break;
|
|
case AGVDataType.UnLoadingStart:
|
|
CollectLoadingData(1);
|
|
break;
|
|
case AGVDataType.Moving:
|
|
CollectMovingAGVData(1);
|
|
break;
|
|
}
|
|
}
|
|
}
|