UI/Components/EscapeMenu.razor
@using System;
@using Sandbox;
@using Sandbox.UI;
@inherits PanelComponent
@namespace Sandbox

<root>
	<div class="background @(isOpen ? "visible" : "hidden")">

		<div class="pause-container @(isPauseMenuOpen ? "visible" : "hidden")">
			<Image class="pause-title" Texture="@LogoTexture" />
			<div class="button-container">
				<Button class="button" onclick="@(() => isOpen = false)">
					Resume
				</Button>

				<Button class="button" onclick="@(() => Game.Overlay.ShowPlayerList())">
					Player List
				</Button>

				<Button class="button" onclick="@(() => OpenSettings())">
					Settings
				</Button>

				<Button class="button exit" onclick="@(() => Game.Disconnect())">
					Exit
				</Button>
			</div>
		</div>

		<div class="settings-container @(isSettingsOpen ? "visible" : "hidden")">

			<div class="tabs-buttons-container">
				<Button class="tab-button">
					Graphic
				</Button>

				<Button class="tab-button">
					Input
				</Button>

				<Button class="tab-button sb" onclick="@(() => Game.Overlay.ShowSettingsModal())">
					Settings - s&box
				</Button>
			</div>

			<div class="buttons-container">
				<div class="graphic-container ">

				</div>

				<div class="input-container ">

				</div>
			</div>
		</div>
	</div>
</root>

@code
{
	[Property]
	List<Texture> LogoArray = new List<Texture>();

	Texture LogoTexture;

	public static bool isOpen = false;

	bool isPauseMenuOpen = true;

	bool isSettingsOpen = false;

	protected override void OnUpdate()
	{
		if (Input.EscapePressed)
		{
			isOpen = !isOpen;

			if ( isOpen )
			{
				LogoTexture = Game.Random.FromList(LogoArray);
				isPauseMenuOpen = true;
			}
			else
			{
				isSettingsOpen = false;
			}
		}

		Input.EscapePressed = false;

		base.OnUpdate();
	}

	void OpenSettings()
	{
		isPauseMenuOpen = false;
		isSettingsOpen = true;
	}

	protected override int BuildHash() => System.HashCode.Combine(isOpen, isPauseMenuOpen, LogoTexture);
}