添加了标识查询
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using Godot;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Xml;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
@@ -128,6 +129,8 @@ public partial class UXService : Control
|
||||
/// </summary>
|
||||
private static readonly Stack<IUXPanel> TransitionPanles = new();
|
||||
|
||||
private static InitializationState InitializationState;
|
||||
|
||||
private void _Entry(IUXPanel panel)
|
||||
{
|
||||
|
||||
@@ -140,21 +143,30 @@ public partial class UXService : Control
|
||||
{
|
||||
Panels.Remove(result.Index);
|
||||
}
|
||||
|
||||
while (RegistryQueue.TryDequeue(out var result))
|
||||
{
|
||||
Panels.Add(result.Index, result);
|
||||
result.Exit();
|
||||
if (InitializationState is InitializationState.Initialized)
|
||||
result.Exit();
|
||||
}
|
||||
if (EnableQueue.TryPop(out var next))
|
||||
|
||||
|
||||
if (!EnableQueue.TryPop(out var next)) return;
|
||||
if (InitializationState is InitializationState.None)
|
||||
{
|
||||
while (EnabledPanels.TryPop(out var enabledPanel))
|
||||
foreach (var x in Panels)
|
||||
{
|
||||
enabledPanel.Exit();
|
||||
x.Value.Exit();
|
||||
}
|
||||
next.Entry();
|
||||
EnabledPanels.Push(next);
|
||||
History.Push(next);
|
||||
return;
|
||||
InitializationState=InitializationState.Initialized;
|
||||
}
|
||||
while (EnabledPanels.TryPop(out var enabledPanel))
|
||||
{
|
||||
enabledPanel.Exit();
|
||||
}
|
||||
next.Entry();
|
||||
EnabledPanels.Push(next);
|
||||
History.Push(next);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user