69 lines
1.5 KiB
C#
69 lines
1.5 KiB
C#
using SupaLidlGame.Debug;
|
|
using Godot;
|
|
|
|
namespace SupaLidlGame.UI.Debug;
|
|
|
|
public partial class DebugUI : CanvasLayer
|
|
{
|
|
private bool _areWindowsVisible = false;
|
|
private Window _lastFocusedWindow = null;
|
|
|
|
public bool AreWindowsVisible
|
|
{
|
|
get => _areWindowsVisible;
|
|
set
|
|
{
|
|
_areWindowsVisible = value;
|
|
foreach (var node in GetChildren())
|
|
{
|
|
if (node is Window w)
|
|
{
|
|
w.Visible = value;
|
|
}
|
|
else if (node is Control c)
|
|
{
|
|
c.Visible = value;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//public override void _Ready()
|
|
//{
|
|
// AreWindowsVisible = false;
|
|
|
|
// ChildEnteredTree += (Node child) =>
|
|
// {
|
|
// if (child is Window w)
|
|
// {
|
|
// void setFocus()
|
|
// {
|
|
// _lastFocusedWindow = w;
|
|
// }
|
|
// w.FocusEntered += setFocus;
|
|
// }
|
|
// };
|
|
|
|
// _lastFocusedWindow = GetNode<Window>("%ConsoleWindow");
|
|
//}
|
|
|
|
public override void _UnhandledInput(InputEvent @event)
|
|
{
|
|
if (@event is InputEventKey key)
|
|
{
|
|
if (key.Keycode == Key.Quoteleft)
|
|
{
|
|
if (key.Pressed)
|
|
{
|
|
Toggle();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public void Toggle()
|
|
{
|
|
AreWindowsVisible = !AreWindowsVisible;
|
|
}
|
|
}
|