mirror of
https://github.com/DCFApixels/DragonECS.git
synced 2025-09-18 09:54:35 +08:00
Update EcsPool.cs
This commit is contained in:
parent
8785b2e00c
commit
6281af1578
@ -98,15 +98,10 @@ namespace DCFApixels.DragonECS
|
|||||||
|
|
||||||
#region Constructors/Init/Destroy
|
#region Constructors/Init/Destroy
|
||||||
public EcsPool() { }
|
public EcsPool() { }
|
||||||
public EcsPool(int capacity, int recycledCapacity = -1)
|
public EcsPool(int capacity)
|
||||||
{
|
{
|
||||||
capacity = ArrayUtility.NextPow2(capacity);
|
capacity = ArrayUtility.NextPow2(capacity);
|
||||||
if (recycledCapacity < 0)
|
|
||||||
{
|
|
||||||
recycledCapacity = capacity / 2;
|
|
||||||
}
|
|
||||||
_items = new T[capacity];
|
_items = new T[capacity];
|
||||||
_recycledItems = new int[recycledCapacity];
|
|
||||||
}
|
}
|
||||||
void IEcsPoolImplementation.OnInit(EcsWorld world, EcsWorld.PoolsMediator mediator, int componentTypeID)
|
void IEcsPoolImplementation.OnInit(EcsWorld world, EcsWorld.PoolsMediator mediator, int componentTypeID)
|
||||||
{
|
{
|
||||||
@ -117,14 +112,7 @@ namespace DCFApixels.DragonECS
|
|||||||
|
|
||||||
_mapping = new int[world.Capacity];
|
_mapping = new int[world.Capacity];
|
||||||
var worldConfig = world.Configs.GetWorldConfigOrDefault();
|
var worldConfig = world.Configs.GetWorldConfigOrDefault();
|
||||||
if (_items == null)
|
Resize(ArrayUtility.NextPow2(worldConfig.PoolComponentsCapacity));
|
||||||
{
|
|
||||||
_items = new T[ArrayUtility.NextPow2(worldConfig.PoolComponentsCapacity)];
|
|
||||||
}
|
|
||||||
if (_recycledItems == null)
|
|
||||||
{
|
|
||||||
_recycledItems = new int[worldConfig.PoolRecycledComponentsCapacity];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
_source = world;
|
_source = world;
|
||||||
@ -366,7 +354,7 @@ namespace DCFApixels.DragonECS
|
|||||||
//var span = new EcsSpan(_source.ID, _denseEntitiesDelayed, 1, _itemsCount);
|
//var span = new EcsSpan(_source.ID, _denseEntitiesDelayed, 1, _itemsCount);
|
||||||
var span = new EcsSpan(_source.ID, _table, 1 + _capacity, _itemsCount);
|
var span = new EcsSpan(_source.ID, _table, 1 + _capacity, _itemsCount);
|
||||||
#if DRAGONECS_DEEP_DEBUG
|
#if DRAGONECS_DEEP_DEBUG
|
||||||
if (DCFApixels.DragonECS.UncheckedCore.UncheckedCoreUtility.CheckSpanValideDebug(span) == false)
|
if (Core.Unchecked.UncheckedUtility.CheckSpanValideDebug(span) == false)
|
||||||
{
|
{
|
||||||
Throw.UndefinedException();
|
Throw.UndefinedException();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user