From 02a0fc02f9d017f4f83f80a8a0d184d350400e8e Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Sat, 2 Mar 2024 21:14:30 +0800 Subject: [PATCH] optimize EcsGroup.Clear & EcsGroup.Inverse --- src/Collections/EcsGroup.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Collections/EcsGroup.cs b/src/Collections/EcsGroup.cs index 15253c6..326016f 100644 --- a/src/Collections/EcsGroup.cs +++ b/src/Collections/EcsGroup.cs @@ -303,11 +303,11 @@ namespace DCFApixels.DragonECS { return; } - _count = 0; - for (int i = 0; i < _sparse.Length; i++) + for (int i = 0; i < _count; i++) { - _sparse[i] = 0; + _sparse[_dense[i]] = 0; } + _count = 0; } #endregion @@ -510,6 +510,14 @@ namespace DCFApixels.DragonECS #region Inverse public void Inverse() { + if(_count == 0) + { + foreach (var entityID in _source.Entities) + { + Add_Internal(entityID); + } + return; + } foreach (var entityID in _source.Entities) { if (Has(entityID))