public void AddSystem(ISystem system) { Mononoke.Logger.Print(system.GetType().Name); Type t = system.GetType().BaseType.GetGenericArguments()[0]; if (_systems.ContainsKey(t)) { throw new Exception("There can only exist one system of a single type."); } _systems.Add(t, system); foreach (Entity e in _entities) { system.Accept(e); } }