UI/BaseCanvas.cs
using System;
namespace HC3;
public partial class BaseCanvas : PanelComponent
{
public string Name { get; private set; }
public bool IsVisible { get; private set; } = false;
protected override void OnAwake()
{
OpenedCanvas = string.Empty;
}
protected override void OnTreeBuilt()
{
SetClass( "basecanvas", true );
}
protected override int BuildHash()
{
return HashCode.Combine( IsVisible );
}
protected override void OnUpdate()
{
SetClass( "visible", IsVisible );
if ( Input.EscapePressed && canvases.Any( x => x.Value.IsVisible ) )
{
Input.EscapePressed = false;
CloseAllCanvases();
}
}
public void RegisterAs( string name )
{
RegisterCanvas( name, this );
Name = name;
}
public void Close()
{
if ( string.IsNullOrEmpty( Name ) )
{
Log.Warning( "This canvas wasn't registered properly - can't close" );
return;
}
CloseCanvas( Name );
}
/// <summary>
/// Called when this canvas is closed
/// </summary>
protected virtual void OnClose()
{
}
/// <summary>
/// Called when this canvas is opened
/// </summary>
protected virtual void OnOpen()
{
}
}