UI/PauseSystem/PauseMenuComponent.razor
@using Sandbox;
@using Sandbox.UI;

@namespace Opium.UI
@inherits PanelComponent

<root>
	<PauseMenu @ref="Menu" />
</root>

@code
{
    public static PauseMenuComponent Current { get; set; }
    public PauseMenu Menu { get; set; }

    bool open = false;

    public PauseMenuComponent()
    {
        Current = this;
    }

    void SetOpen( bool isOpen )
    {
        open = isOpen;
        Opium.GameManager.IsPaused = isOpen;
    }

    public void Close()
    {
        SetOpen(false);
    }

    protected override void OnUpdate()
    {
        base.OnUpdate();

        if ( Input.EscapePressed )
        {
            Input.EscapePressed = false;

            SetOpen( !open );
        }

        if(open)
        {
            SetClass( "open", true );
        }
        else
        {
            SetClass("open", false );
        }
    }

	/// <summary>
	/// the hash determines if the system should be rebuilt. If it changes, it will be rebuilt
	/// </summary>
	protected override int BuildHash() => System.HashCode.Combine( Time.Delta );
}