From cb7e086dcd8c28486c97c0fc3724ae21bd775d0d Mon Sep 17 00:00:00 2001 From: DCFApixels <99481254+DCFApixels@users.noreply.github.com> Date: Mon, 10 Mar 2025 22:28:54 +0800 Subject: [PATCH] add EcsWorld.DestroyAndClearAllWorlds --- src/EcsWorld.static.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/EcsWorld.static.cs b/src/EcsWorld.static.cs index d364a2f..02002fe 100644 --- a/src/EcsWorld.static.cs +++ b/src/EcsWorld.static.cs @@ -66,6 +66,21 @@ namespace DCFApixels.DragonECS return ref WorldComponentPool.GetForWorldUnchecked(worldID); } + public static void DestroyAndClearAllWorlds() + { + for (int i = 1; i < _worlds.Length; i++) + { + var world = _worlds[i]; + if (world == null) { continue; } + + if(world.IsDestroyed == false) + { + world.Destroy(); + } + world = null; + } + } + #region WorldComponentPool public ReadOnlySpan GetWorldComponents() { @@ -251,11 +266,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 {