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