using System.Collections;
using System.Collections.Generic;
using System.Data.SqlTypes;
using System.Diagnostics;
using UnityEngine;
///
/// 方案/设备/系统
///
public class D_Scheme
{
#region 变量
///
/// 自身Id
///
public int id;
///
/// 方案名称
///
public string schemeName;
public string ToolOrMaterilOrDevice;
public int deviceTypeId;
public string deviceMap;
#endregion
///
/// 存放所有流程
///
public List processes = new List();
///
/// 当前流程
///
private D_Process currentProcess;
///
/// 当前流程
///
public D_Process CurrentProcess
{
get => currentProcess;
set
{
currentProcess = value;
CurrentProcessId = currentProcess.id;
}
}
///
/// 当前流程id
///
private int currentProcessId;
///
/// 当前流程id
///
public int CurrentProcessId
{
get => currentProcessId;
set
{
currentProcessId = value;
GameManager.ProcessMgr.processId = currentProcessId;
}
}
///
/// 初始化
///
public void Init()
{
if (processes == null || processes.Count == 0)
return;
CurrentProcess = processes[0];
CurrentProcess.Init();
}
///
/// 切换流程
///
public void HandoverProcess(int processId, int subProcessId = 0, int subProcessStepId = 0)
{
if (CurrentProcess != null)
CurrentProcess.Exit();
CurrentProcess = GetProcess(processId);
CurrentProcess.Enter();
//UnityEngine.Debug.Log("切换流程到:" + processId);
if (subProcessId == 0)
CurrentProcess.HandoverSubProcess(CurrentProcess.subProcesses[0].id, subProcessStepId);
else
CurrentProcess.HandoverSubProcess(subProcessId, subProcessStepId);
}
///
/// 根据id获取 流程对象
///
///
///
private D_Process GetProcess(int processId)
{
for (int i = 0; i < processes.Count; i++)
{
if (processes[i].id == processId)
{
return processes[i];
}
}
return null;
}
}