This commit is contained in:
DCFApixels 2025-07-11 23:37:48 +08:00
parent c23aa1b223
commit ab50dcb7e3
3 changed files with 18 additions and 5 deletions

View File

@ -351,7 +351,7 @@ namespace DCFApixels.DragonECS
//} //}
} }
IEcsProcess[] allSystems = new IEcsProcess[allSystemsLength]; IEcsProcess[] allSystems = new IEcsProcess[allSystemsLength];
{ {
int i = 0; int i = 0;
@ -368,7 +368,7 @@ namespace DCFApixels.DragonECS
} }
} }
EcsPipeline pipeline = new EcsPipeline(Configs.Instance.GetContainer(), Injector, allSystems); EcsPipeline pipeline = new EcsPipeline(allSystems, Configs.Instance.GetContainer(), Injector);
foreach (var item in _initDeclaredRunners) foreach (var item in _initDeclaredRunners)
{ {
item.Declare(pipeline); item.Declare(pipeline);

View File

@ -78,10 +78,23 @@ namespace DCFApixels.DragonECS
#endregion #endregion
#region Constructors #region Constructors
private EcsPipeline(IConfigContainer configs, Injector.Builder injectorBuilder, IEcsProcess[] systems) public EcsPipeline(IEnumerable<IEcsProcess> systems, IConfigContainer configs = null, Injector.Builder injectorBuilder = null)
{ {
if(systems == null)
{
Throw.ArgumentNull(nameof(systems));
}
if(configs == null)
{
configs = new ConfigContainer();
}
if(injectorBuilder == null)
{
injectorBuilder = new Injector.Builder(null);
}
_configs = configs; _configs = configs;
_allSystems = systems; _allSystems = systems.ToArray();
injectorBuilder.Inject(this); injectorBuilder.Inject(this);
var members = GetProcess<IEcsPipelineMember>(); var members = GetProcess<IEcsPipelineMember>();

View File

@ -178,7 +178,7 @@ namespace DCFApixels.DragonECS
{ {
private EcsPipeline.Builder _source; private EcsPipeline.Builder _source;
private Injector _instance; private Injector _instance;
private List<InitInjectBase> _initInjections = new List<InitInjectBase>(16); private List<InitInjectBase> _initInjections = new List<InitInjectBase>(32);
private EcsWorld _monoWorld; private EcsWorld _monoWorld;
internal Builder(EcsPipeline.Builder source) internal Builder(EcsPipeline.Builder source)
{ {