diff --git a/src/EcsRunner.cs b/src/EcsRunner.cs index 46c8719..70a7109 100644 --- a/src/EcsRunner.cs +++ b/src/EcsRunner.cs @@ -61,10 +61,13 @@ namespace DCFApixels.DragonECS Type runnerBaseType = typeof(EcsRunner<>); List runnerHandlerTypes = new List(); - runnerHandlerTypes = Assembly.GetAssembly(runnerBaseType) - .GetTypes() - .Where(type => type.BaseType != null && type.BaseType.IsGenericType && runnerBaseType == type.BaseType.GetGenericTypeDefinition()) - .ToList(); + + foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) + { + runnerHandlerTypes.AddRange( + assembly.GetTypes() + .Where(type => type.BaseType != null && type.BaseType.IsGenericType && runnerBaseType == type.BaseType.GetGenericTypeDefinition())); + } #if DEBUG || !DRAGONECS_NO_SANITIZE_CHECKS for (int i = 0; i < runnerHandlerTypes.Count; i++) diff --git a/src/EcsSystems.cs b/src/EcsSystems.cs index 73bb6af..5c43b59 100644 --- a/src/EcsSystems.cs +++ b/src/EcsSystems.cs @@ -190,7 +190,10 @@ namespace DCFApixels.DragonECS } foreach (var item in _blockExecutionOrder) { - result.AddRange(_systems[item]); + if(_systems.TryGetValue(item, out var list)) + { + result.AddRange(list); + } } return new EcsSystems(result.ToArray());