update AddParamsFlags

This commit is contained in:
Mikhail 2024-09-14 18:34:13 +08:00
parent 4a44995b48
commit 3e7eeb01d7
2 changed files with 14 additions and 9 deletions

View File

@ -184,7 +184,7 @@ namespace DCFApixels.DragonECS
{ {
var oldService = _instance; var oldService = _instance;
_instance = service; _instance = service;
if(_instance != null) if (_instance != null)
{ //TODO Так, всеже треды влияют друг на друга, скоерее всего проблема в использовании _nameIdTable/ Так вроде пофиксил, но не понял как конкретно { //TODO Так, всеже треды влияют друг на друга, скоерее всего проблема в использовании _nameIdTable/ Так вроде пофиксил, но не понял как конкретно
foreach (var info in oldService.MarkerInfos) foreach (var info in oldService.MarkerInfos)
{ {

View File

@ -714,7 +714,7 @@ namespace DCFApixels.DragonECS
int i = 0; int i = 0;
foreach (ref readonly SystemNode node in it) foreach (ref readonly SystemNode node in it)
{ {
var prms = new AddParams(node.layerName, node.sortOrder, node.isUnique, AddParamsFlags.OverwriteAll | AddParamsFlags.NoImport); var prms = new AddParams(node.layerName, node.sortOrder, node.isUnique, AddParamsFlags.None.SetOverwriteAll(true).SetNoImport(true));
result.systems[i++] = new EcsPipelineTemplate.AddCommand(node.system, prms); result.systems[i++] = new EcsPipelineTemplate.AddCommand(node.system, prms);
} }
return result; return result;
@ -1022,7 +1022,7 @@ namespace DCFApixels.DragonECS
this.layerName = layerName; this.layerName = layerName;
this.sortOrder = sortOrder; this.sortOrder = sortOrder;
this.isUnique = isUnique; this.isUnique = isUnique;
flags = AddParamsFlags.OverwriteAll; flags = AddParamsFlags.None.SetOverwriteAll(true);
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public AddParams(string layerName, int sortOrder, bool isUnique, AddParamsFlags overrideFlags) public AddParams(string layerName, int sortOrder, bool isUnique, AddParamsFlags overrideFlags)
@ -1102,22 +1102,23 @@ namespace DCFApixels.DragonECS
/// Ignore call IEcsModule.Import(Builder b) /// Ignore call IEcsModule.Import(Builder b)
/// </summary> /// </summary>
NoImport = 1 << 7, NoImport = 1 << 7,
OverwriteAll = OverwriteLayerName | OverwriteSortOrder | OverwriteIsUnique,
} }
public static class AddParamsFlagsUtility public static class AddParamsFlagsUtility
{ {
private const AddParamsFlags OverwriteAll = AddParamsFlags.OverwriteLayerName | AddParamsFlags.OverwriteSortOrder | AddParamsFlags.OverwriteIsUnique;
private const AddParamsFlags All = OverwriteAll | AddParamsFlags.NoImport;
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static AddParamsFlags Normalize(this AddParamsFlags flags) { return flags & All; }
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool IsOverwriteLayerName(this AddParamsFlags flags) { return (flags & AddParamsFlags.OverwriteLayerName) == AddParamsFlags.OverwriteLayerName; } public static bool IsOverwriteLayerName(this AddParamsFlags flags) { return (flags & AddParamsFlags.OverwriteLayerName) == AddParamsFlags.OverwriteLayerName; }
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool IsOverwriteSortOrder(this AddParamsFlags flags) { return (flags & AddParamsFlags.OverwriteSortOrder) == AddParamsFlags.OverwriteSortOrder; } public static bool IsOverwriteSortOrder(this AddParamsFlags flags) { return (flags & AddParamsFlags.OverwriteSortOrder) == AddParamsFlags.OverwriteSortOrder; }
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool IsOverwriteIsUnique(this AddParamsFlags flags) { return (flags & AddParamsFlags.OverwriteIsUnique) == AddParamsFlags.OverwriteIsUnique; } public static bool IsOverwriteIsUnique(this AddParamsFlags flags) { return (flags & AddParamsFlags.OverwriteIsUnique) == AddParamsFlags.OverwriteIsUnique; }
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool IsOverwriteAll(this AddParamsFlags flags) { return (flags & AddParamsFlags.OverwriteAll) == AddParamsFlags.OverwriteAll; } public static bool IsOverwriteAll(this AddParamsFlags flags) { return (flags & OverwriteAll) == OverwriteAll; }
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool IsNoImport(this AddParamsFlags flags) { return (flags & AddParamsFlags.NoImport) == AddParamsFlags.NoImport; } public static bool IsNoImport(this AddParamsFlags flags) { return (flags & AddParamsFlags.NoImport) == AddParamsFlags.NoImport; }
@ -1127,6 +1128,10 @@ namespace DCFApixels.DragonECS
public static AddParamsFlags SetOverwriteSortOrder(this AddParamsFlags flags, bool flag) { return flag ? flags | AddParamsFlags.OverwriteSortOrder : flags & ~AddParamsFlags.OverwriteSortOrder; } public static AddParamsFlags SetOverwriteSortOrder(this AddParamsFlags flags, bool flag) { return flag ? flags | AddParamsFlags.OverwriteSortOrder : flags & ~AddParamsFlags.OverwriteSortOrder; }
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]
public static AddParamsFlags SetOverwriteIsUnique(this AddParamsFlags flags, bool flag) { return flag ? flags | AddParamsFlags.OverwriteIsUnique : flags & ~AddParamsFlags.OverwriteIsUnique; } public static AddParamsFlags SetOverwriteIsUnique(this AddParamsFlags flags, bool flag) { return flag ? flags | AddParamsFlags.OverwriteIsUnique : flags & ~AddParamsFlags.OverwriteIsUnique; }
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static AddParamsFlags SetOverwriteAll(this AddParamsFlags flags, bool flag) { return flag ? flags | OverwriteAll : flags & ~OverwriteAll; }
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static AddParamsFlags SetNoImport(this AddParamsFlags flags, bool flag) { return flag ? flags | AddParamsFlags.NoImport : flags & ~AddParamsFlags.NoImport; }
} }
#endregion #endregion
} }