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" >> ; </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