From 17b8e596a9e549941afc039b4b195dfab77f083b Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Wed, 29 Mar 2023 19:40:18 +0800 Subject: [PATCH] fixes --- src/EcsRunner.cs | 11 +++++++---- src/EcsSystems.cs | 5 ++++- 2 files changed, 11 insertions(+), 5 deletions(-) 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());