diff --git a/src/Executors/MaskQueryExecutor.cs b/src/Executors/MaskQueryExecutor.cs index 96e786a..46e70f3 100644 --- a/src/Executors/MaskQueryExecutor.cs +++ b/src/Executors/MaskQueryExecutor.cs @@ -176,7 +176,7 @@ namespace DCFApixels.DragonECS.Core long* ptr = _versions; var slots = _world._poolSlots; - bool result = _maskInc.Length > 0 || _maskExc.Length > 0; + bool result = _maskInc.Length != 0 | _maskExc.Length != 0; //тут возможно нужно оптимизировать foreach (var slotIndex in _maskInc) { ptr++; diff --git a/src/Pools/EcsPool.cs b/src/Pools/EcsPool.cs index c301bd5..40eb2cc 100644 --- a/src/Pools/EcsPool.cs +++ b/src/Pools/EcsPool.cs @@ -324,17 +324,14 @@ namespace DCFApixels.DragonECS #endif return span; } - private bool IsDenseEntitiesDelayedValid() - { - return _isDenseEntitiesDelayedValid;//_itemsCount == _denseEntitiesDelayedCount; - } private void UpdateDenseEntities() { - if (IsDenseEntitiesDelayedValid()) { return; } - _denseEntitiesDelayedCount = 0; - for (int i = 0, jRight = _itemsCount + 1; i < _capacity; i++) + if (_isDenseEntitiesDelayedValid) { return; } + _denseEntitiesDelayedCount = 1; + _denseEntitiesDelayed[0] = 0; + for (int i = 1, jRight = _itemsCount + 1; i < _capacity; i++) { - if (_sparseEntities[i] == 0 && i != 0) + if (_sparseEntities[i] == 0) { _denseEntitiesDelayed[jRight] = i; jRight++;