mirror of
https://github.com/DCFApixels/DragonECS.git
synced 2025-09-18 01:44:35 +08:00
stash
This commit is contained in:
parent
6f08b7a107
commit
a200ea6153
@ -48,7 +48,6 @@ namespace DCFApixels.DragonECS
|
|||||||
//private int[] _denseEntitiesDelayed;
|
//private int[] _denseEntitiesDelayed;
|
||||||
private int[] _table;
|
private int[] _table;
|
||||||
private int _denseEntitiesDelayedCount = 0;
|
private int _denseEntitiesDelayedCount = 0;
|
||||||
private int _denseEntitiesDelayedPtr = 0;
|
|
||||||
private bool _isDenseEntitiesDelayedValid = false;
|
private bool _isDenseEntitiesDelayedValid = false;
|
||||||
private int _recycledCount = 0;
|
private int _recycledCount = 0;
|
||||||
|
|
||||||
@ -72,7 +71,7 @@ namespace DCFApixels.DragonECS
|
|||||||
}
|
}
|
||||||
public int Capacity
|
public int Capacity
|
||||||
{
|
{
|
||||||
get { return _items.Length; }
|
get { return _capacity; }
|
||||||
}
|
}
|
||||||
public int ComponentTypeID
|
public int ComponentTypeID
|
||||||
{
|
{
|
||||||
@ -113,7 +112,7 @@ namespace DCFApixels.DragonECS
|
|||||||
_mediator.RegisterComponent(entityID, _componentTypeID, _maskBit);
|
_mediator.RegisterComponent(entityID, _componentTypeID, _maskBit);
|
||||||
ref T result = ref _items[itemIndex];
|
ref T result = ref _items[itemIndex];
|
||||||
//_sparseEntities[itemIndex] = entityID;
|
//_sparseEntities[itemIndex] = entityID;
|
||||||
_table[itemIndex] = entityID;
|
//_table[itemIndex] = entityID;
|
||||||
EnableComponent(ref result);
|
EnableComponent(ref result);
|
||||||
#if !DRAGONECS_DISABLE_POOLS_EVENTS
|
#if !DRAGONECS_DISABLE_POOLS_EVENTS
|
||||||
_listeners.InvokeOnAddAndGet(entityID, _listenersCachedCount);
|
_listeners.InvokeOnAddAndGet(entityID, _listenersCachedCount);
|
||||||
@ -170,7 +169,7 @@ namespace DCFApixels.DragonECS
|
|||||||
itemIndex = GetFreeItemIndex(entityID);
|
itemIndex = GetFreeItemIndex(entityID);
|
||||||
_mediator.RegisterComponent(entityID, _componentTypeID, _maskBit);
|
_mediator.RegisterComponent(entityID, _componentTypeID, _maskBit);
|
||||||
//_sparseEntities[itemIndex] = entityID;
|
//_sparseEntities[itemIndex] = entityID;
|
||||||
_table[itemIndex] = entityID;
|
//_table[itemIndex] = entityID;
|
||||||
EnableComponent(ref _items[itemIndex]);
|
EnableComponent(ref _items[itemIndex]);
|
||||||
#if !DRAGONECS_DISABLE_POOLS_EVENTS
|
#if !DRAGONECS_DISABLE_POOLS_EVENTS
|
||||||
_listeners.InvokeOnAdd(entityID, _listenersCachedCount);
|
_listeners.InvokeOnAdd(entityID, _listenersCachedCount);
|
||||||
@ -410,17 +409,19 @@ namespace DCFApixels.DragonECS
|
|||||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
private int GetFreeItemIndex(int entityID)
|
private int GetFreeItemIndex(int entityID)
|
||||||
{
|
{
|
||||||
if (_denseEntitiesDelayedCount >= _items.Length)
|
if (_denseEntitiesDelayedCount == _capacity)
|
||||||
{
|
{
|
||||||
UpdateDenseEntities();
|
UpdateDenseEntities();
|
||||||
}
|
if (_itemsCount + 1 == _capacity)
|
||||||
|
|
||||||
if (_itemsCount + 1 >= _items.Length)
|
|
||||||
{
|
{
|
||||||
Resize(_items.Length << 1);
|
Resize(_items.Length << 1);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int result = 0;
|
int result = 0;
|
||||||
if(_recycledCount > 0)
|
//ref int tf = ref _table[_denseEntitiesDelayedCount | _capacity];
|
||||||
|
if (_recycledCount != 0)
|
||||||
{
|
{
|
||||||
_recycledCount--;
|
_recycledCount--;
|
||||||
//result = _denseEntitiesDelayed[_denseEntitiesDelayedCount];
|
//result = _denseEntitiesDelayed[_denseEntitiesDelayedCount];
|
||||||
@ -430,10 +431,7 @@ namespace DCFApixels.DragonECS
|
|||||||
{
|
{
|
||||||
result = _denseEntitiesDelayedCount;
|
result = _denseEntitiesDelayedCount;
|
||||||
}
|
}
|
||||||
//_denseEntitiesDelayed[_denseEntitiesDelayedCount] = entityID;
|
|
||||||
_table[_denseEntitiesDelayedCount | _capacity] = entityID;
|
|
||||||
_itemsCount++;
|
|
||||||
_denseEntitiesDelayedCount++;
|
|
||||||
|
|
||||||
#if DRAGONECS_DEEP_DEBUG
|
#if DRAGONECS_DEEP_DEBUG
|
||||||
//if (_sparseEntities[result] != 0)
|
//if (_sparseEntities[result] != 0)
|
||||||
@ -446,6 +444,12 @@ namespace DCFApixels.DragonECS
|
|||||||
Throw.UndefinedException();
|
Throw.UndefinedException();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
//_denseEntitiesDelayed[_denseEntitiesDelayedCount] = entityID;
|
||||||
|
_table[result] = _table[_denseEntitiesDelayedCount | _capacity] = entityID;
|
||||||
|
_itemsCount++;
|
||||||
|
_denseEntitiesDelayedCount++;
|
||||||
|
//_isDenseEntitiesDelayedValid = false;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
//private void CheckOrUpsize()
|
//private void CheckOrUpsize()
|
||||||
|
Loading…
Reference in New Issue
Block a user