UI/PanelComponents/PauseMenu.razor
@using Sandbox;
@using Sandbox.UI;
@using Sandbox.Network;
@namespace Battlebugs
@inherits PanelComponent

<root class="@(IsOpen ? "show" : "")">
	<label class="title">Paused</label>
	<div class="content">
		<button onclick=@(() => IsOpen = false)>Resume</button>
		<button class="red" onclick=@(() => ReturnToMainMenu())>Quit to Main Menu</button>
	</div>
</root>

@code
{
	public static PauseMenu Instance { get; private set; }
	[Property] SceneFile SceneFile { get; set; }

	public bool IsOpen { get; private set; }

	protected override void OnAwake()
	{
		Instance = this;
	}

	protected override void OnUpdate()
	{
		if (Input.EscapePressed)
		{
			IsOpen = !IsOpen;
			Input.EscapePressed = false;
		}
	}

	public void ReturnToMainMenu()
	{
		Networking.Disconnect();
		Game.ActiveScene.Load(SceneFile);
	}

	protected override int BuildHash() => System.HashCode.Combine(IsOpen);
}