From f228ca50d297529c9d71ba09b7faade0a0bc57d1 Mon Sep 17 00:00:00 2001 From: DCFApixels <99481254+DCFApixels@users.noreply.github.com> Date: Sun, 17 Nov 2024 13:26:38 +0800 Subject: [PATCH] simple refactoring --- src/EcsWorld.cs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/EcsWorld.cs b/src/EcsWorld.cs index fcd6175..7bfd25a 100644 --- a/src/EcsWorld.cs +++ b/src/EcsWorld.cs @@ -291,7 +291,7 @@ namespace DCFApixels.DragonECS ref var slot = ref _entities[entityID]; slot.isUsed = true; if (slot.gen >= GEN_STATUS_SEPARATOR) - { + { slot.gen |= GEN_SLEEP_MASK; } _entityListeners.InvokeOnNewEntity(entityID); @@ -668,11 +668,9 @@ namespace DCFApixels.DragonECS } public unsafe void ReleaseDelEntityBuffer(int count) { - if (_delEntBufferCount <= 0) - { - return; - } + if (_delEntBufferCount <= 0) { return; } unchecked { _version++; } + count = Math.Max(0, Math.Min(count, _delEntBufferCount)); _delEntBufferCount -= count; int slisedCount = count; @@ -689,7 +687,9 @@ namespace DCFApixels.DragonECS } } - ReadOnlySpan buffer = new ReadOnlySpan(_delEntBuffer, _delEntBufferCount, count); + //если фулл очистка то _delEntBufferCount будет 0 + + ReadOnlySpan fullBuffer = new ReadOnlySpan(_delEntBuffer, _delEntBufferCount, count); if (slisedCount > 0) { ReadOnlySpan bufferSlised = new ReadOnlySpan(_delEntBuffer, _delEntBufferCount, slisedCount); @@ -704,7 +704,7 @@ namespace DCFApixels.DragonECS { if (group.IsReleased) { - group.OnReleaseDelEntityBuffer_Internal(buffer); + group.OnReleaseDelEntityBuffer_Internal(fullBuffer); } } else @@ -713,10 +713,10 @@ namespace DCFApixels.DragonECS } } - _listeners.InvokeOnReleaseDelEntityBuffer(buffer); - for (int i = 0; i < buffer.Length; i++) + _listeners.InvokeOnReleaseDelEntityBuffer(fullBuffer); + for (int i = 0; i < fullBuffer.Length; i++) { - int e = buffer[i]; + int e = fullBuffer[i]; _entityDispenser.Release(e); _entities[e].gen |= GEN_SLEEP_MASK; }