diff --git a/src/Pools/EcsPool.cs b/src/Pools/EcsPool.cs index bca9c8c..964c20f 100644 --- a/src/Pools/EcsPool.cs +++ b/src/Pools/EcsPool.cs @@ -100,7 +100,7 @@ namespace DCFApixels.DragonECS if (_isLocked) { EcsPoolThrowHelper.ThrowPoolLocked(); } #elif DRAGONECS_STABILITY_MODE if (itemIndex > 0) { return ref Get(entityID); } - if (_isLocked) { return ref _items[0]; } + if (_isLocked || _source.IsUsed(entityID) == false) { return ref _items[0]; } #endif if (_recycledItemsCount > 0) { diff --git a/src/Pools/EcsTagPool.cs b/src/Pools/EcsTagPool.cs index 64aa373..8f84bd9 100644 --- a/src/Pools/EcsTagPool.cs +++ b/src/Pools/EcsTagPool.cs @@ -108,7 +108,7 @@ namespace DCFApixels.DragonECS if (Has(entityID)) { EcsPoolThrowHelper.ThrowAlreadyHasComponent(entityID); } if (_isLocked) { EcsPoolThrowHelper.ThrowPoolLocked(); } #elif DRAGONECS_STABILITY_MODE - if (Has(entityID) || _isLocked) { return; } + if (Has(entityID) || _source.IsUsed(entityID) == false || _isLocked) { return; } #endif _count++; _mapping[entityID] = true;