From b801139e1c2014f635adad73bcce63b737e5d643 Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Thu, 22 Feb 2024 23:48:17 +0800 Subject: [PATCH] update --- src/AutoInjectSystem.cs | 29 +++++++++++++---------------- src/Processes.cs | 7 ------- 2 files changed, 13 insertions(+), 23 deletions(-) delete mode 100644 src/Processes.cs diff --git a/src/AutoInjectSystem.cs b/src/AutoInjectSystem.cs index f198e68..4c61bb7 100644 --- a/src/AutoInjectSystem.cs +++ b/src/AutoInjectSystem.cs @@ -141,10 +141,10 @@ namespace DCFApixels.DragonECS private readonly struct InjectedPropertyRecord { - public readonly IEcsSystem target; + public readonly IEcsProcess target; public readonly IInjectedProperty property; public EcsInjectAttribute Attribute => property.GetAutoInjectAttribute(); - public InjectedPropertyRecord(IEcsSystem target, IInjectedProperty property) + public InjectedPropertyRecord(IEcsProcess target, IInjectedProperty property) { this.target = target; this.property = property; @@ -154,33 +154,30 @@ namespace DCFApixels.DragonECS [MetaTags(MetaTags.HIDDEN)] [MetaColor(MetaColor.Gray)] - public class AutoInjectSystem : IEcsInject, IEcsPipelineMember, IEcsPreInitInjectProcess + public class AutoInjectSystem : IEcsInject, IEcsPipelineMember, IOnInitInjectionComplete { private EcsPipeline _pipeline; EcsPipeline IEcsPipelineMember.Pipeline { get => _pipeline; set => _pipeline = value; } + private List _delayedInjects = new List(); private AutoInjectionMap _autoInjectionMap; - private bool _preInitInjectCompleted = false; - + private bool _isInitInjectionCompleted; public void Inject(object obj) { - if (!_preInitInjectCompleted) - { - _delayedInjects.Add(obj); - } - else + if (_isInitInjectionCompleted) { _autoInjectionMap.Inject(obj.GetType(), obj); } + else + { + _delayedInjects.Add(obj); + } } - public void OnPreInitInjectionBefore(EcsPipeline pipeline) - { - _pipeline = pipeline; - } - public void OnPreInitInjectionAfter() + + public void OnInitInjectionComplete() { _autoInjectionMap = new AutoInjectionMap(_pipeline); - _preInitInjectCompleted = true; + _isInitInjectionCompleted = true; foreach (var obj in _delayedInjects) { diff --git a/src/Processes.cs b/src/Processes.cs deleted file mode 100644 index b7a8427..0000000 --- a/src/Processes.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace DCFApixels.DragonECS -{ - public interface IInjectRaw : IEcsSystem - { - void Inject(object obj); - } -}