66 lines
1.8 KiB
C#
66 lines
1.8 KiB
C#
using cfg.GuideCfg;
|
||
using cfg.ProcedureCfg;
|
||
using Framework;
|
||
using PhxhSDK;
|
||
using System;
|
||
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using UnityEngine;
|
||
|
||
/// <summary>
|
||
/// 强制流程管理器
|
||
/// </summary>
|
||
public class ProcedureManager: Singlenton<ProcedureManager>, IInitable
|
||
{
|
||
/// <summary>
|
||
/// 强制流程数据,key:检查类型,value:强制流程数组
|
||
/// </summary>
|
||
private Dictionary<E_ProcedureCheck, List<DataProcedure>> dicProcedureCfg;
|
||
|
||
public void Init()
|
||
{
|
||
EventManager.Instance.Register(EventManager.EventName.AllConfigLoad, InitData);
|
||
}
|
||
|
||
public void Release()
|
||
{
|
||
EventManager.Instance.Unregister(EventManager.EventName.AllConfigLoad, InitData);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 检查是否进入强制流程
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public bool CheckEnterProcedure(E_ProcedureCheck procedureCheck)
|
||
{
|
||
if (!dicProcedureCfg.TryGetValue(procedureCheck, out List<DataProcedure> listCfg))
|
||
{
|
||
DebugUtil.LogError($"没有获得到{procedureCheck.GetType()}类型的配置");
|
||
return false;
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 初始化数据
|
||
/// </summary>
|
||
private void InitData()
|
||
{
|
||
dicProcedureCfg = new();
|
||
|
||
foreach (DataProcedure cfg in TableManager.Instance.Tables.ProcedureConfig.DataList)
|
||
{
|
||
foreach (E_ProcedureCheck procedureCheck in cfg.ProcedureCheckType)
|
||
{
|
||
if (!dicProcedureCfg.TryGetValue(procedureCheck, out List<DataProcedure> listCfg))
|
||
{
|
||
listCfg = new();
|
||
dicProcedureCfg[procedureCheck] = listCfg;
|
||
}
|
||
|
||
listCfg.Add(cfg);
|
||
}
|
||
}
|
||
}
|
||
} |