From 77027c64db5dab030690695c2e2a9b3dd9292b02 Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Sat, 27 May 2023 15:59:57 +0800 Subject: [PATCH] add WarningMissedInjections --- src/AutoInjectSystem.cs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/AutoInjectSystem.cs b/src/AutoInjectSystem.cs index 6d40a6d..f3e309a 100644 --- a/src/AutoInjectSystem.cs +++ b/src/AutoInjectSystem.cs @@ -15,7 +15,7 @@ namespace DCFApixels.DragonECS private Dictionary> _systems; private HashSet _notInjected; - private Type dummyInstance = typeof(DummyInstance<>); + private Type _dummyInstance = typeof(DummyInstance<>); private bool _isDummyInjected = false; @@ -96,14 +96,25 @@ namespace DCFApixels.DragonECS } systemRecord.field.SetValue(systemRecord.target, - dummyInstance.MakeGenericType(systemRecord.attribute.notNullDummyType).GetField("intsance", BindingFlags.Static | BindingFlags.Public).GetValue(null)); + _dummyInstance.MakeGenericType(systemRecord.attribute.notNullDummyType).GetField("intsance", BindingFlags.Static | BindingFlags.Public).GetValue(null)); } } - + WarningMissedInjections(); _notInjected.Clear(); _notInjected= null; } + private void WarningMissedInjections() + { + foreach (var item in _notInjected) + { + foreach (var systemRecord in _systems[item]) + { + EcsDebug.PrintWarning($"in system {EcsDebugUtility.GetGenericTypeFullName(systemRecord.target.GetType(), 1)} is missing an injection of {EcsDebugUtility.GetGenericTypeFullName(item, 1)}."); + } + } + } + private readonly struct FiledRecord { public readonly IEcsSystem target;