iFactory.Godot/BITKit/Scripts/UX/UXPanel.cs

58 lines
1.2 KiB
C#

using Godot;
using System;
namespace BITKit;
public partial class UXPanel : Control, IUXPanel
{
[Export] private bool isAnimate;
[Export] private bool allowCursor;
[Export] private bool allowInput;
[Export] private bool isStartPanel;
public bool IsAnimate => isAnimate;
public string Index => _index;
public bool AllowCursor => allowCursor;
public bool AllowInput => allowInput;
private string _index;
public virtual void OnEntry(){}
public virtual void Entry()
{
Show();
OnEntry();
}
public virtual void Exit()
{
Hide();
OnExit();
}
public virtual void OnExit(){}
public override void _Ready()
{
_index = GetType().FullName == typeof(UXPanel).FullName ? Name : GetType().FullName;
UXService.Register(this);
if (isStartPanel)
{
UXService.Open(this as IUXPanel);
}
}
private void Open()
{
UXService.Open(this as IUXPanel);
}
public override void _ExitTree()
{
UXService.UnRegister(this);
}
// protected override void Dispose(bool disposing)
// {
// UXService.UnRegister(this);
// }
}