public void AddRules(Dimension dimension, ISpawnRule rules) { if (!SpawnRules.ContainsKey(dimension)) { SpawnRules[dimension] = new List <ISpawnRule>(); } SpawnRules[dimension].Add(rules); }
private static void RegisterSpawnRules() { // Use reflection to get all of SpawnRule implementations. var classes = Assembly.GetCallingAssembly().GetTypes() .Where(p => typeof(ISpawnRule).IsAssignableFrom(p) && p.IsClass && !p.IsAbstract).ToArray(); foreach (var type in classes) { ISpawnRule instance = Activator.CreateInstance(type) as ISpawnRule; if (instance == null) { throw new NullReferenceException("Unable to activate instance of type: " + type); } _spawnRules.Add(type.Name, instance); } }
public void AddRules(Dimension dimension, ISpawnRule rules) { if (!SpawnRules.ContainsKey(dimension)) SpawnRules[dimension] = new List<ISpawnRule>(); SpawnRules[dimension].Add(rules); }