internal void RegisterSystem(ITerribleSystem system) { var dependsOn = system.GetDependencies(); if (!_systemsToNotify.ContainsKey(dependsOn)) { _systemsToNotify.Add(dependsOn, new List <ITerribleSystem>()); } _systemsToNotify[dependsOn].Add(system); }
public void AddSystem(ITerribleSystem system) { var dependencies = system.GetDependencies(); if (!_systemDependencies.ContainsKey(dependencies)) { _systemDependencies.Add(dependencies, new List <ITerribleSystem>()); } _systems.Add(system); _systemDependencies[dependencies].Add(system); }
internal void UnregisterSystem(ITerribleSystem system) { _systemsToNotify[system.GetDependencies()].Remove(system); }