This commit is contained in:
DCFApixels 2025-03-12 17:18:46 +08:00
parent ab444859d3
commit 50691b3309
2 changed files with 11 additions and 6 deletions

View File

@ -443,7 +443,7 @@ namespace DCFApixels.DragonECS
{ {
try try
{ {
translationCallback(pair.run, t0); translationCallback(pair.run, ref data);
} }
catch (Exception e) catch (Exception e)
{ {
@ -456,7 +456,7 @@ namespace DCFApixels.DragonECS
{ {
if (pair.runFinally != null) if (pair.runFinally != null)
{ {
translationFinnalyCallback(pair.runFinally, t0); translationFinnalyCallback(pair.runFinally, ref data);
} }
} }
} }

View File

@ -303,13 +303,17 @@ namespace DCFApixels.DragonECS
Get(entityID) = dataRaw == null ? default : (T)dataRaw; Get(entityID) = dataRaw == null ? default : (T)dataRaw;
} }
#if DRAGONECS_DEEP_DEBUG
private bool _lockToSpan = false; private bool _lockToSpan = false;
#endif
public EcsSpan ToSpan() public EcsSpan ToSpan()
{ {
#if DRAGONECS_DEEP_DEBUG
if (_lockToSpan) if (_lockToSpan)
{ {
return _source.Entities; return _source.Entities;
} }
#endif
UpdateDenseEntities(); UpdateDenseEntities();
var span = new EcsSpan(_source.ID, _denseEntitiesDelayed, 1, _itemsCount); var span = new EcsSpan(_source.ID, _denseEntitiesDelayed, 1, _itemsCount);
#if DRAGONECS_DEEP_DEBUG #if DRAGONECS_DEEP_DEBUG
@ -326,7 +330,7 @@ namespace DCFApixels.DragonECS
} }
private void UpdateDenseEntities() private void UpdateDenseEntities()
{ {
//if (IsDenseEntitiesDelayedValid()) { return; } if (IsDenseEntitiesDelayedValid()) { return; }
_denseEntitiesDelayedCount = 0; _denseEntitiesDelayedCount = 0;
for (int i = 0, jRight = _itemsCount + 1; i < _capacity; i++) for (int i = 0, jRight = _itemsCount + 1; i < _capacity; i++)
{ {
@ -378,7 +382,7 @@ namespace DCFApixels.DragonECS
} }
private int GetFreeItemIndex(int entityID) private int GetFreeItemIndex(int entityID)
{ {
//if (_denseEntitiesDelayedCount >= _capacity - 1) if (_denseEntitiesDelayedCount >= _capacity - 1)
{ {
UpdateDenseEntities(); UpdateDenseEntities();
} }
@ -413,9 +417,10 @@ namespace DCFApixels.DragonECS
_denseEntitiesDelayed = new int[newSize]; _denseEntitiesDelayed = new int[newSize];
_denseEntitiesDelayedCount = 0; _denseEntitiesDelayedCount = 0;
_capacity = newSize; _capacity = newSize;
_isDenseEntitiesDelayedValid = false;
UpdateDenseEntities(); UpdateDenseEntities();
} }
#endregion #endregion
#region Listeners #region Listeners
#if !DISABLE_POOLS_EVENTS #if !DISABLE_POOLS_EVENTS
@ -434,7 +439,7 @@ namespace DCFApixels.DragonECS
} }
} }
#endif #endif
#endregion #endregion
#region Enable/Disable/Copy #region Enable/Disable/Copy
[MethodImpl(MethodImplOptions.AggressiveInlining)] [MethodImpl(MethodImplOptions.AggressiveInlining)]