mirror of
https://github.com/DCFApixels/DragonECS.git
synced 2025-09-18 18:14:37 +08:00
fix changes
This commit is contained in:
parent
b5f134845d
commit
7ccf23e137
@ -246,7 +246,7 @@ namespace DCFApixels.DragonECS
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Enumerator
|
#region Enumerator
|
||||||
public struct Enumerator : IDisposable
|
public ref struct Enumerator
|
||||||
{
|
{
|
||||||
private readonly EcsGroup _source;
|
private readonly EcsGroup _source;
|
||||||
private readonly int[] _dense;
|
private readonly int[] _dense;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
@ -11,8 +12,9 @@ namespace DCFApixels.DragonECS
|
|||||||
private IEcsPool[] _pools;
|
private IEcsPool[] _pools;
|
||||||
private EcsNullPool _nullPool;
|
private EcsNullPool _nullPool;
|
||||||
|
|
||||||
private int[] _denseEntities;
|
private short[] _gens;
|
||||||
private int[] _sparceEntities;
|
private short[] _componentCounts;
|
||||||
|
|
||||||
private int _entitiesCount;
|
private int _entitiesCount;
|
||||||
|
|
||||||
private List<EcsQueryBase>[] _filtersByIncludedComponents;
|
private List<EcsQueryBase>[] _filtersByIncludedComponents;
|
||||||
@ -22,12 +24,42 @@ namespace DCFApixels.DragonECS
|
|||||||
|
|
||||||
private List<EcsGroup> _groups;
|
private List<EcsGroup> _groups;
|
||||||
|
|
||||||
#region Internal Properties
|
|
||||||
|
#region Properties
|
||||||
public int Count => _entitiesCount;
|
public int Count => _entitiesCount;
|
||||||
public int Capacity => _denseEntities.Length;
|
public int Capacity => _gens.Length;
|
||||||
|
public ReadOnlySpan<IEcsPool> GetAllPools() => new ReadOnlySpan<IEcsPool>(_pools);
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region internal Add/Has/Remove
|
||||||
|
internal void Add(int entityID)
|
||||||
|
{
|
||||||
|
int entity;
|
||||||
|
if (_entitiesCount >= _gens.Length)
|
||||||
|
{
|
||||||
|
Array.Resize(ref _gens, _gens.Length << 1);
|
||||||
|
Array.Resize(ref _componentCounts, _componentCounts.Length << 1);
|
||||||
|
}
|
||||||
|
_gens[_entitiesCount++]++;
|
||||||
|
_componentCounts[_entitiesCount++] = 0;
|
||||||
|
|
||||||
|
// if (_gens.Length <= entityID)
|
||||||
|
// {
|
||||||
|
// //TODO есть проблема что если передать слишком большой id такой алогоритм не сработает
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
internal void Has(int entityID)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
internal void Remove(int entityID)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public ReadOnlySpan<IEcsPool> GetAllPools() => new ReadOnlySpan<IEcsPool>(_pools);
|
|
||||||
//public int GetComponentID<T>() => ;
|
//public int GetComponentID<T>() => ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Transactions;
|
|
||||||
|
|
||||||
namespace DCFApixels.DragonECS
|
namespace DCFApixels.DragonECS
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user