91 lines
2.7 KiB
C#
Raw Normal View History

2025-03-11 16:24:25 +08:00
using System;
using System.Collections.Generic;
using UnityEngine;
public class ProcessManager : MonoBehaviour
{
List<ProcessModel> excelList = new();
List<ProcessModel> currList = new();
float totalWeight;
ExcelData excelData = new();
public void Init()
{
excelData.Init();
foreach (var loData in excelData.allProcessData)
{
ProcessModel processModel = GetProcessModel_Excel(loData.subModule, loData.task);
if (processModel != null)
{
processModel.weight += loData.weight;
}
else
{
processModel = new ProcessModel();
processModel.subModule = loData.subModule;
processModel.task = loData.task;
processModel.weight = loData.weight;
excelList.Add(processModel);
}
totalWeight += loData.weight;
}
//foreach (var item in excelList)
//{
// Debug.Log(item.subModule + "===" + item.task);
//}
}
public void SetProcess(string subModule,string task)
{
ProcessModel processModel_Excel = GetProcessModel_Excel(subModule, task);
if (processModel_Excel != null)
{
ProcessModel processModel_Curr = GetProcessModel_Curr(subModule, task);
if (processModel_Curr == null)
{
processModel_Curr = new ProcessModel();
processModel_Curr.subModule = subModule;
processModel_Curr.task = task;
processModel_Curr.weight = processModel_Excel.weight;
currList.Add(processModel_Curr);
}
}
}
/// <summary>
/// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD>Ȱٷֱ<D9B7>
/// </summary>
public float GetProcess()
{
int currWeight = 0;
foreach (var item in currList)
{
currWeight += item.weight;
}
return (float)Math.Round(currWeight / totalWeight, 2) * 100;
}
public void Clear()
{
currList.Clear();
}
ProcessModel GetProcessModel_Excel(string subModule, string task)
{
for (int i = 0; i < excelList.Count; i++)
{
if (subModule == excelList[i].subModule && task == excelList[i].task)
{
return excelList[i];
}
}
return null;
}
ProcessModel GetProcessModel_Curr(string subModule, string task)
{
for (int i = 0; i < currList.Count; i++)
{
if (subModule == currList[i].subModule && task == currList[i].task)
{
return currList[i];
}
}
return null;
}
}