AufCtx.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using Leopotam.Ecs;
  2. namespace Asset_Cleaner {
  3. static class AufCtx {
  4. public static EcsWorld World;
  5. public static EcsSystems UpdateGroup;
  6. public static EcsSystems OnGuiGroup;
  7. internal static bool InitStarted { get; private set; }
  8. internal static bool Destroyed { get; private set; }
  9. internal static void TryInitWorld() {
  10. if (InitStarted) return;
  11. InitStarted = true;
  12. World = new EcsWorld();
  13. (OnGuiGroup = new EcsSystems(World)
  14. .Add(new SysWindowGui())).Init();
  15. (UpdateGroup = new EcsSystems(World)
  16. .Add(new SysRepaintWindow())
  17. .Add(new SysUndoRedoSelection())
  18. .Add(new SysProcessSearch())
  19. .Add(new SysSceneCleanup())
  20. ).Init();
  21. }
  22. internal static void DestroyWorld() {
  23. if (!InitStarted) return;
  24. InitStarted = false;
  25. Destroyed = true;
  26. Asr.IsFalse(__GlobalsCounter.HasAnyValue());
  27. }
  28. }
  29. }