using System.Collections.Generic; using ModuleModel; namespace ModuleManager { public partial class ModuleManager :IManager { private Dictionary _allModules = new Dictionary(); private List _updateModules = new List(); public ModuleManager() { this.RegisterAllManager(); this.RegisterAllModel(); } public void DoFrameUpdate(int time, int delta) { foreach (IModel mod in _updateModules) { mod.DoFrameUpdate(time, delta); } } public async void ImportFromServer(Dictionary userDatas) { foreach (IModel mod in _updateModules) { mod.InitServerData(userDatas); } await Awaiters.NextFrame; foreach (IModel mod in _updateModules) { mod.AfterServerDataAnalysis(); } } private void RegisterMoudle(IModel module) { module.Init(); _updateModules.Add(module); if (!_allModules.TryGetValue(module.ModuleId, out IModel value)) { _allModules.Add(module.ModuleId,module); } } public IModel FindModule(ModuleIdEnum moduleId) { IModel module = null; _allModules.TryGetValue((int)moduleId, out module); return module; } public void DisposeData() { foreach (IModel mod in _updateModules) { mod.Dispose(); } } } }