This commit is contained in:
Mikhail 2024-10-06 15:35:01 +08:00
parent 5e3913b31b
commit c13deb9d13

View File

@ -114,7 +114,13 @@ namespace DCFApixels.DragonECS
//TODO нужно потестить //TODO нужно потестить
if (isUnique && _uniqueSystemsSet.Add(system.GetType()) == false) if (isUnique && _uniqueSystemsSet.Add(system.GetType()) == false)
{ {
EcsDebug.PrintWarning($"The pipeline already contains a unique instance of {system.GetType().Name}"); //EcsDebug.PrintWarning($"The pipeline already contains a unique instance of {system.GetType().Name}");
return;
}
if (string.IsNullOrEmpty(layer))
{
layer = BASIC_LAYER;
} }
SystemNode record = new SystemNode(system, layer, sortOrder, isUnique); SystemNode record = new SystemNode(system, layer, sortOrder, isUnique);
@ -796,6 +802,11 @@ namespace DCFApixels.DragonECS
return self.Add(system, new AddParams(layerName: layerName, sortOrder: sortOrder, isUnique: isUnique)); return self.Add(system, new AddParams(layerName: layerName, sortOrder: sortOrder, isUnique: isUnique));
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsPipeline.Builder AddUnique(this EcsPipeline.Builder self, IEcsProcess system)
{
return self.Add(system, new AddParams(isUnique: true));
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsPipeline.Builder AddUnique(this EcsPipeline.Builder self, IEcsProcess system, string layerName) public static EcsPipeline.Builder AddUnique(this EcsPipeline.Builder self, IEcsProcess system, string layerName)
{ {
return self.Add(system, new AddParams(layerName: layerName, isUnique: true)); return self.Add(system, new AddParams(layerName: layerName, isUnique: true));
@ -854,6 +865,11 @@ namespace DCFApixels.DragonECS
return self.AddModule(module, new AddParams(layerName: layerName, sortOrder: sortOrder, isUnique: isUnique)); return self.AddModule(module, new AddParams(layerName: layerName, sortOrder: sortOrder, isUnique: isUnique));
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsPipeline.Builder AddModuleUnique(this EcsPipeline.Builder self, IEcsModule module)
{
return self.AddModule(module, new AddParams(isUnique: true));
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsPipeline.Builder AddModuleUnique(this EcsPipeline.Builder self, IEcsModule module, string layerName) public static EcsPipeline.Builder AddModuleUnique(this EcsPipeline.Builder self, IEcsModule module, string layerName)
{ {
return self.AddModule(module, new AddParams(layerName: layerName, isUnique: true)); return self.AddModule(module, new AddParams(layerName: layerName, isUnique: true));
@ -912,6 +928,11 @@ namespace DCFApixels.DragonECS
return self.Add(raw, new AddParams(layerName: layerName, sortOrder: sortOrder, isUnique: isUnique)); return self.Add(raw, new AddParams(layerName: layerName, sortOrder: sortOrder, isUnique: isUnique));
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsPipeline.Builder AddUnique(this EcsPipeline.Builder self, object raw)
{
return self.Add(raw, new AddParams(isUnique: true));
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsPipeline.Builder AddUnique(this EcsPipeline.Builder self, object raw, string layerName) public static EcsPipeline.Builder AddUnique(this EcsPipeline.Builder self, object raw, string layerName)
{ {
return self.Add(raw, new AddParams(layerName: layerName, isUnique: true)); return self.Add(raw, new AddParams(layerName: layerName, isUnique: true));