NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Procedure/ProcedureManager.cs

66 lines
1.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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);
}
}
}
}