Skip to content

Commit 1780154

Browse files
committed
Added addon selection in lobby page
1 parent 068a4a8 commit 1780154

17 files changed

+295
-217
lines changed

.sbproj

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"HasAssets": true,
99
"AssetsPath": "",
1010
"Resources": "ui/*",
11-
"MenuResources": null,
11+
"MenuResources": "/UI/Menu/*",
1212
"HasCode": true,
1313
"CodePath": "code",
1414
"PackageReferences": [],
@@ -169,9 +169,11 @@
169169
"Keyboard": true
170170
},
171171
"Compiler": {
172-
"RootNamespace": "Sandbox",
172+
"RootNamespace": "TTT",
173173
"DefineConstants": "SANDBOX;ADDON;DEBUG",
174-
"NoWarn": "1701;1702;1591;"
174+
"NoWarn": "1701;1702;1591;",
175+
"References": [],
176+
"DistinctReferences": []
175177
},
176178
"CsProjName": "",
177179
"TickRate": 50,

code/UI/GameMenu/CreateGame/CreateGamePage.razor

Lines changed: 0 additions & 105 deletions
This file was deleted.

code/UI/GameMenu/DefaultLoadingPanel.razor.scss

Lines changed: 0 additions & 96 deletions
This file was deleted.
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
@using Sandbox;
2+
@using Sandbox.MenuSystem;
3+
@using Sandbox.UI;
4+
@using System;
5+
@using System.Collections.Generic;
6+
7+
@namespace TTT.UI.GameMenu
8+
9+
@attribute [StyleSheet]
10+
@inherits Panel
11+
12+
<root class="creategamepage layout">
13+
14+
<div class="navbar">
15+
16+
<div class="left">
17+
<a class="button" href="/"> Home </a>
18+
<span class="block">&gt;</span>
19+
<span class="block">Create A Game</span>
20+
</div>
21+
22+
<div class="right">
23+
</div>
24+
</div>
25+
26+
<div class="body columned">
27+
28+
<div class="form settings scroll">
29+
30+
<div class="form-group">
31+
<label class="setting-name">Server Name</label>
32+
<TextEntry Value:bind=@Game.Menu.Lobby.Title Tooltip="Server Title"> </TextEntry>
33+
</div>
34+
35+
<div class="form-group">
36+
<label class="setting-name">Max Players</label>
37+
<SliderControl ShowTextEntry="@true" ShowRange="@true" Min=@(1.0f) Max=@(64) Value:bind="@Game.Menu.Lobby.MaxMembers"></SliderControl>
38+
</div>
39+
40+
<div class="form-group">
41+
<div>
42+
<label class="setting-name">Addons</label>
43+
<button text="+" onclick=@OnAddonClicked style="left: 90px; bottom:5px; position: absolute;"></button>
44+
</div>
45+
<div class="addons scroll">
46+
@if (!Game.Menu.Lobby.Addons.IsEmpty)
47+
{
48+
foreach (var addon in Addons)
49+
{
50+
<PackageCard Package=@addon class="addon"></PackageCard>
51+
}
52+
}
53+
</div>
54+
55+
</div>
56+
</div>
57+
<div class="right">
58+
<h2>Map</h2>
59+
<MapButton MapIdent=@Game.Menu.Lobby.Map OnClicked="@OnMapClicked"></MapButton>
60+
</div>
61+
</div>
62+
63+
<div class="navbar">
64+
65+
<div class="left"></div>
66+
67+
<div class="right">
68+
<a class="button" href="/"> Cancel </a>
69+
<span class="button" onclick=@StartGame>Start Game</span>
70+
</div>
71+
72+
</div>
73+
74+
</root>
75+
76+
@code
77+
{
78+
public List<Package> Addons { get; set; } = new();
79+
80+
public void StartGame()
81+
{
82+
_ = Game.Menu.Lobby.LaunchGameAsync();
83+
Addons.Clear();
84+
this.Navigate("/active");
85+
}
86+
87+
void OnMapClicked()
88+
{
89+
Game.Overlay.ShowPackageSelector("type:map game:thieves.terrortown sort:popular", OnMapSelected);
90+
}
91+
92+
void OnMapSelected(Package map)
93+
{
94+
Game.Menu.Lobby.Map = map.FullIdent;
95+
StateHasChanged();
96+
}
97+
98+
void OnAddonClicked()
99+
{
100+
Game.Overlay.ShowPackageSelector("type:addon game:matt.ttt sort:popular", OnAddonSelected);
101+
}
102+
103+
void OnAddonSelected(Package addon)
104+
{
105+
if (!Game.Menu.Lobby.Addons.Contains(addon.FullIdent))
106+
{
107+
Addons.Add(addon);
108+
Game.Menu.Lobby.Addons = Game.Menu.Lobby.Addons.Add(addon.FullIdent);
109+
}
110+
111+
StateHasChanged();
112+
}
113+
114+
public override void Tick()
115+
{
116+
base.Tick();
117+
118+
if (!IsVisible)
119+
return;
120+
}
121+
}

0 commit comments

Comments
 (0)