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);
}