A Razor UI component for the main menu in a KOTH project. It defines a canvas with a Watermark component, commented-out navigation buttons and several commented-out methods for loading scenes and joining lobbies, plus simple CSS styles.
@namespace KOTH.UI
@using Sandbox.Events
@inherits PanelComponent
<root>
<canvas>
<Watermark />
@* <div class="nav">
@if (BaseMenu)
{
<button onclick=@(() => { BaseMenu = false; SinglePlayer = true; })>SinglePlayer</button>
<button onclick=@(() => { BaseMenu = false; Multiplayer = true; })>Multiplayer</button>
<button onclick=@(() => Game.Overlay.ShowSettingsModal())>Settings</button>
}
@if (SinglePlayer)
{
<button onclick=@(() => LoadBotz())>Botz</button>
<button onclick=@(() => LoadJumper())>Jump Map</button>
<button onclick=@(() => { BaseMenu = true; SinglePlayer = false; })>Back</button>
}
@if (Multiplayer)
{
<button onclick=@(() => LoadMge())>1v1</button>
<button onclick=@(() => LoadPayload())>Payload</button>
<button onclick=@(() => { BaseMenu = true; Multiplayer = false; })>Back</button>
}
</div> *@
</canvas>
</root>
<style>
* {
width: auto;
pointer-events: all;
color: white;
}
.nav {
position: absolute;
top: 90%;
right: 50%;
}
.nav button {
width: 256px;
font-size: 16px;
}
.nav button:hover {
cursor: pointer;
}
</style>
@code
{
// bool BaseMenu = true;
// bool SinglePlayer = false;
// bool Multiplayer = false;
// bool Settings = false;
// private void LoadBotz()
// {
// Game.ActiveScene.LoadFromFile("scenes/multiplayer_test/multiplayertest.scene");
// }
// private void LoadJumper()
// {
// Game.ActiveScene.LoadFromFile("scenes/jumpmap/jump1.scene");
// }
// bool Trying = false;
// private async void LoadPayload()
// {
// if (Networking.IsConnecting || Trying)
// {
// Log.Info("connecting...");
// return;
// }
// if (Game.IsEditor)
// {
// Game.ActiveScene.LoadFromFile("scenes/pl_sheff/sheff.scene");
// return;
// }
// Trying = true;
// var Lobbies = await Networking.QueryLobbies(Game.Ident);
// foreach (var Lobby in Lobbies)
// {
// if (Lobby.Name.StartsWith("pl_") && !Lobby.IsFull)
// {
// if (await Networking.TryConnectSteamId(Lobby.LobbyId))
// {
// return;
// }
// }
// }
// Game.ActiveScene.LoadFromFile("scenes/pl_sheff/sheff.scene");
// Trying = false;
// }
// private async void LoadMge()
// {
// if (Networking.IsConnecting || Trying)
// {
// Log.Info("connecting...");
// return;
// }
// if (Game.IsEditor)
// {
// Game.ActiveScene.LoadFromFile("scenes/mge/mge.scene");
// return;
// }
// Trying = true;
// var Lobbies = await Networking.QueryLobbies(Game.Ident);
// foreach (var Lobby in Lobbies)
// {
// if (Lobby.Name.StartsWith("mge_") && !Lobby.IsFull)
// {
// if (await Networking.TryConnectSteamId(Lobby.LobbyId))
// {
// return;
// }
// }
// }
// Game.ActiveScene.LoadFromFile("scenes/mge/mge.scene");
// Trying = false;
// }
// protected override int BuildHash()
// {
// return HashCode.Combine(Time.Now);
// }
}