mirror of
https://github.com/DCFApixels/DragonECS.git
synced 2025-09-18 01:44:35 +08:00
update
This commit is contained in:
parent
4196c1e600
commit
f479cb122d
@ -797,6 +797,32 @@ namespace DCFApixels.DragonECS
|
|||||||
|
|
||||||
public static partial class EcsPipelineBuilderExtensions
|
public static partial class EcsPipelineBuilderExtensions
|
||||||
{
|
{
|
||||||
|
#region Simple Builders
|
||||||
|
public static EcsPipeline ToPipeline(this IEcsModule module)
|
||||||
|
{
|
||||||
|
return EcsPipeline.New().Add(module).Build();
|
||||||
|
}
|
||||||
|
public static EcsPipeline ToPipelineAndInit(this IEcsModule module)
|
||||||
|
{
|
||||||
|
return EcsPipeline.New().Add(module).BuildAndInit();
|
||||||
|
}
|
||||||
|
public static EcsPipeline ToPipeline(this IEnumerable<IEcsModule> modules)
|
||||||
|
{
|
||||||
|
var result = EcsPipeline.New();
|
||||||
|
foreach (var module in modules)
|
||||||
|
{
|
||||||
|
result.Add(module);
|
||||||
|
}
|
||||||
|
return result.Build();
|
||||||
|
}
|
||||||
|
public static EcsPipeline ToPipelineAndInit(this IEnumerable<IEcsModule> modules)
|
||||||
|
{
|
||||||
|
var result = modules.ToPipeline();
|
||||||
|
result.Init();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region Add IEcsProcess
|
#region Add IEcsProcess
|
||||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
public static EcsPipeline.Builder Add(this EcsPipeline.Builder self, IEcsProcess system)
|
public static EcsPipeline.Builder Add(this EcsPipeline.Builder self, IEcsProcess system)
|
||||||
|
@ -231,8 +231,10 @@ namespace DCFApixels.DragonECS
|
|||||||
{
|
{
|
||||||
void Import(EcsPipeline.Builder b);
|
void Import(EcsPipeline.Builder b);
|
||||||
}
|
}
|
||||||
public abstract class EcsModule<T> : IEcsModule, IInjectionUnit
|
public abstract class EcsModule<T> : IEcsModule, IInjectionUnit, IEcsDefaultAddParams
|
||||||
{
|
{
|
||||||
|
AddParams IEcsDefaultAddParams.AddParams { get { return AddParams; } }
|
||||||
|
protected virtual AddParams AddParams { get { return default; } }
|
||||||
public abstract void Import(EcsPipeline.Builder b);
|
public abstract void Import(EcsPipeline.Builder b);
|
||||||
void IInjectionUnit.InitInjectionNode(InjectionGraph nodes) { nodes.AddNode<T>(); }
|
void IInjectionUnit.InitInjectionNode(InjectionGraph nodes) { nodes.AddNode<T>(); }
|
||||||
public EcsModule() { if (GetType() != typeof(T)) { Throw.UndefinedException(); } }
|
public EcsModule() { if (GetType() != typeof(T)) { Throw.UndefinedException(); } }
|
||||||
|
Loading…
Reference in New Issue
Block a user