Merge branch 'dev' of github.com:DCFApixels/DragonECS into dev

This commit is contained in:
DCFApixels 2025-03-10 22:54:40 +08:00
commit c9d9f4c268

View File

@ -21,7 +21,7 @@ namespace DCFApixels.DragonECS
#endregion
private static EcsWorld[] _worlds = Array.Empty<EcsWorld>();
private static IdDispenser _worldIdDispenser = new IdDispenser(4, 0, n => Array.Resize(ref _worlds, n));
private static readonly IdDispenser _worldIdDispenser = new IdDispenser(4, 0, n => Array.Resize(ref _worlds, n));
private static StructList<WorldComponentPoolAbstract> _allWorldComponentPools = new StructList<WorldComponentPoolAbstract>(64);
private StructList<WorldComponentPoolAbstract> _worldComponentPools;
@ -66,6 +66,22 @@ namespace DCFApixels.DragonECS
return ref WorldComponentPool<T>.GetForWorldUnchecked(worldID);
}
public static void ResetStaticState()
{
for (int i = 1; i < _worlds.Length; i++)
{
var world = _worlds[i];
if (world == null) { continue; }
if(world.IsDestroyed == false)
{
world.Destroy();
}
world = null;
}
_worldIdDispenser.ReleaseAll();
}
#region WorldComponentPool
public ReadOnlySpan<WorldComponentPoolAbstract> GetWorldComponents()
{
@ -251,11 +267,14 @@ namespace DCFApixels.DragonECS
}
#endregion
#region NullWorld
private sealed class NullWorld : EcsWorld
{
internal NullWorld() : base(new EcsWorldConfig(4, 4, 4, 4, 4), null, 0) { }
}
#endregion
#region DebuggerProxy
protected partial class DebuggerProxy
{