Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
which emits Source.Generated.CvarRegistration for EngineBuilder.ConVar_Register to use instead of reflection. -->
<ItemGroup Condition="'@(Compile->WithMetadataValue('Identity', '..\Usings\GlobalUsings.cs'))' != ''">
<ProjectReference Include="$(MSBuildThisFileDirectory)Source.CodeAnalysis.ConVars\Source.CodeAnalysis.ConVars.csproj" PrivateAssets="all" ReferenceOutputAssembly="false" OutputItemType="Analyzer" />
<ProjectReference Include="$(MSBuildThisFileDirectory)Source.CodeAnalysis.VGUI\Source.CodeAnalysis.VGUI.csproj" PrivateAssets="all" ReferenceOutputAssembly="false" OutputItemType="Analyzer" />
</ItemGroup>

<ItemGroup Condition="'$(IsWindows)' != 'true'">
Expand Down
22 changes: 5 additions & 17 deletions Game.Assets/Assets.cs
Original file line number Diff line number Diff line change
Expand Up @@ -355,23 +355,7 @@ private void UpdateButtons() {
UnlinkSelectedButton.SetEnabled(canUnlinkSelected);
}

public override void OnCommand(ReadOnlySpan<char> command) {
if (command.SequenceEqual("LinkAll"))
LinkAllAssets();
else if (command.SequenceEqual("UnlinkAll"))
UnlinkAllAssets();
else if (command.SequenceEqual("LinkSelected"))
LinkSelectedAsset();
else if (command.SequenceEqual("UnlinkSelected"))
UnlinkSelectedAsset();
else if (command.SequenceEqual("Refresh"))
RefreshList();
else if (command.SequenceEqual("Close"))
Close();
else
base.OnCommand(command);
}

[UiCommand("LinkSelected")]
private void LinkSelectedAsset() {
if (ListPanel.GetSelectedItemsCount() == 0)
return;
Expand Down Expand Up @@ -400,6 +384,7 @@ private void LinkSelectedAsset() {
RefreshList();
}

[UiCommand("UnlinkSelected")]
private void UnlinkSelectedAsset() {
if (ListPanel.GetSelectedItemsCount() == 0)
return;
Expand All @@ -425,6 +410,7 @@ private void UnlinkSelectedAsset() {
RefreshList();
}

[UiCommand("Refresh")]
private void RefreshList() {
string? selectedPath = null;
if (ListPanel.GetSelectedItemsCount() > 0) {
Expand Down Expand Up @@ -457,6 +443,7 @@ private void RefreshList() {
UpdateButtons();
}

[UiCommand("LinkAll")]
private void LinkAllAssets() {
string? gmodPath = AssetUtils.FindGarrysModPath();
if (gmodPath == null)
Expand All @@ -466,6 +453,7 @@ private void LinkAllAssets() {
RefreshList();
}

[UiCommand("UnlinkAll")]
private void UnlinkAllAssets() {
foreach (var asset in AssetsStringList) {
if (!AssetUtils.IsAssetLinked(asset.LocalPath, ProjectRoot))
Expand Down
10 changes: 2 additions & 8 deletions Game.Client/HUD/BaseHudChat.cs
Original file line number Diff line number Diff line change
Expand Up @@ -791,6 +791,7 @@ internal void StartMessageMode(MessageModeType messageModeType) {
engine.ClientCmd_Unrestricted("gameui_preventescapetoshow\n");
}

[UiMessage("ChatEntrySend")]
public void Send() {
Span<char> text = stackalloc char[128];
ChatInput.GetMessageText(text);
Expand All @@ -806,14 +807,7 @@ public void Send() {
engine.ClientCmd_Unrestricted(buf[..writePtr]);
}

public override void OnMessage(KeyValues message, IPanel? from) {
switch (message.Name) {
case "ChatEntryStopMessageMode": StopMessageMode(); break;
case "ChatEntrySend": Send(); break;
default: base.OnMessage(message, from); break;
}
}

[UiMessage("ChatEntryStopMessageMode")]
public void StopMessageMode() {
engine.ClientCmd_Unrestricted("gameui_allowescapetoshow\n");

Expand Down
100 changes: 30 additions & 70 deletions Game.ServerBrowser/BaseGamesPage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -722,11 +722,12 @@ void SetFiltersVisible(bool visible) {
OnButtonToggled(Filter, visible ? 1 : 0);
}

void OnButtonToggled(Panel panel, int state) {
[UiMessage("ButtonToggled")]
void OnButtonToggled(Panel sender, int state) {
UpdateFilterAndQuickListVisibility();

if (panel == NoFullServersFilterCheck || panel == NoEmptyServersFilterCheck || panel == NoPasswordFilterCheck || panel == ReplayFilterCheck)
OnTextChanged(panel, "");
if (sender == NoFullServersFilterCheck || sender == NoEmptyServersFilterCheck || sender == NoPasswordFilterCheck || sender == ReplayFilterCheck)
OnTextChanged(sender, "");
}

void UpdateDerivedLayouts() {
Expand All @@ -750,9 +751,10 @@ void UpdateDerivedLayouts() {
HideReplayFilter();
}

void OnTextChanged(Panel panel, ReadOnlySpan<char> text) {
[UiMessage("TextChanged")]
void OnTextChanged(Panel sender, ReadOnlySpan<char> text) {
if (stricmp(text, ComboAllText) == 0) {
if (panel is ComboBox combo) {
if (sender is ComboBox combo) {
combo.SetText("");
text = "";
}
Expand All @@ -761,7 +763,7 @@ void OnTextChanged(Panel panel, ReadOnlySpan<char> text) {
UpdateFilterSettings();
ApplyGameFilters();

if (FiltersVisible && (panel == GameFilter || panel == LocationFilter) && ServerBrowserDialog.Instance!.IsVisible()) {
if (FiltersVisible && (sender == GameFilter || sender == LocationFilter) && ServerBrowserDialog.Instance!.IsVisible()) {
StopRefresh();
GetNewServerList();
}
Expand Down Expand Up @@ -883,29 +885,15 @@ public virtual void SetRefreshing(bool state) {
}
}

public override void OnCommand(ReadOnlySpan<char> command) {
switch (command) {
case "Connect":
OnBeginConnect();
break;
case "stoprefresh":
StopRefresh();
break;
case "refresh":
SteamMatchmakingServers.RefreshQuery(Request);
SetRefreshing(true);
ServerRefreshCount = 0;
ClearQuickList();
break;
case "GetNewList":
GetNewServerList();
break;
default:
base.OnCommand(command);
break;
}
[UiCommand("refresh")]
private void OnRefresh() {
SteamMatchmakingServers.RefreshQuery(Request);
SetRefreshing(true);
ServerRefreshCount = 0;
ClearQuickList();
}

[UiMessage("ItemSelected")]
void OnItemSelected() {
if (GetSelectedServerID() == -1)
Connect.SetEnabled(false);
Expand All @@ -923,8 +911,10 @@ public override void OnKeyCodePressed(ButtonCode code) {
public bool OnGameListEnterPressed() => false;
int GetSelectedItemsCount() => GameList.GetSelectedItemsCount();

[UiMessage("AddToFavorites")]
public virtual void OnAddToFavorites() { }

[UiMessage("AddToBlacklist")]
public virtual void OnAddToBlacklist() { }

public virtual void ServerFailedToRespond(HServerListRequest req, int server) => ServerResponded(req, server);
Expand All @@ -936,6 +926,7 @@ public void RemoveServer(ServerDisplay server) {
UpdateStatus();
}

[UiMessage("RefreshServer")]
void OnRefreshServer(int serverID) {
for (int i = 0; i < GameList.GetSelectedItemsCount(); i++) {
int serverId = GameList.GetItemUserData(GameList.GetSelectedItem(i));
Expand Down Expand Up @@ -1001,8 +992,10 @@ void ClearServerList() {
ClearQuickList();
}

[UiCommand("GetNewList")]
public virtual void GetNewServerList() => StartRefresh();

[UiCommand("stoprefresh")]
public virtual void StopRefresh() {
ServerRefreshCount = 0;

Expand Down Expand Up @@ -1054,6 +1047,8 @@ public int GetSelectedServerID(ref KeyValues? kv) {
return serverId;
}

[UiCommand("Connect")]
[UiMessage("ConnectToServer")]
public void OnBeginConnect() {
KeyValues? kv = null;
int serverID = GetSelectedServerID(ref kv);
Expand Down Expand Up @@ -1092,6 +1087,7 @@ public void OnBeginConnect() {
ServerBrowserDialog.Instance!.JoinGame(this, (uint)serverID);
}

[UiMessage("ViewGameInfo")]
void OnViewGameInfo() {
int serverID = GetSelectedServerID();
if (serverID == -1)
Expand Down Expand Up @@ -1135,42 +1131,8 @@ public ReadOnlySpan<char> GetConnectCode() {
void OnFavoritesMsg(FavoritesListChanged_t favListChanged) { }

public virtual bool SupportsItem(IGameList.InterfaceItem item) => false;
[UiMessage("OpenContextMenu")]
public virtual void OnOpenContextMenu(int itemID) { }

public override void OnMessage(KeyValues message, IPanel? from) {
switch (message.Name) {
case "OpenContextMenu":
OnOpenContextMenu(message.GetInt("itemID"));
return;
case "AddToFavorites":
OnAddToFavorites();
return;
case "AddToBlacklist":
OnAddToBlacklist();
return;
case "ItemSelected":
OnItemSelected();
return;
case "ConnectToServer":
OnBeginConnect();
return;
case "ViewGameInfo":
OnViewGameInfo();
return;
case "RefreshServer":
OnRefreshServer(message.GetInt("serverID"));
return;
case "TextChanged":
OnTextChanged((Panel)from!, message.GetString("text"));
break;
case "ButtonToggled":
OnButtonToggled((Panel)from!, message.GetInt("state"));
break;
default:
base.OnMessage(message, from);
break;
}
}
}

class DialogServerWarning : Frame
Expand All @@ -1195,16 +1157,14 @@ public override void ApplySchemeSettings(IScheme Scheme) {
}

readonly static KeyValues KV_Close = new("Close");
public override void OnCommand(ReadOnlySpan<char> command) {
if (command.Equals("OK", StringComparison.Ordinal)) {
PostMessage(this, KV_Close);
ServerBrowserDialog.Instance!.JoinGame(GameList, (uint)ServerID);
}

base.OnCommand(command);
[UiCommand("OK")]
private void OnOK() {
PostMessage(this, KV_Close);
ServerBrowserDialog.Instance!.JoinGame(GameList, (uint)ServerID);
base.OnCommand("OK");
}

public void OnButtonToggled(Panel panel, int state) {
public void OnButtonToggled(Panel sender, int state) {
ConVarRef sb_dontshow_maxplayer_warning = new("sb_dontshow_maxplayer_warning");
if (sb_dontshow_maxplayer_warning.IsValid())
sb_dontshow_maxplayer_warning.SetValue(state);
Expand Down
31 changes: 12 additions & 19 deletions Game.ServerBrowser/DialogServerPassword.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,24 +40,17 @@ public void Activate(ReadOnlySpan<char> serverName, uint serverID) {
}

readonly static KeyValues KV_Close = new("Close");
public override void OnCommand(ReadOnlySpan<char> command) {
bool close = false;

if (command == "Connect") {
KeyValues msg = new("JoinServerWithPassword");
Span<char> buffer = stackalloc char[64];
PasswordEntry.GetText(buffer);
msg.SetString("password", buffer);
msg.SetInt("serverID", ServerID);
PostActionSignal(msg);
close = true;
}
else if (command == "Close")
close = true;
else
base.OnCommand(command);

if (close)
PostMessage(this, KV_Close);
[UiCommand("Connect")]
private void OnConnect() {
KeyValues msg = new("JoinServerWithPassword");
Span<char> buffer = stackalloc char[64];
PasswordEntry.GetText(buffer);
msg.SetString("password", buffer);
msg.SetInt("serverID", ServerID);
PostActionSignal(msg);
PostMessage(this, KV_Close);
}

[UiCommand("Close")]
private void OnCloseCommand() => PostMessage(this, KV_Close);
}
28 changes: 5 additions & 23 deletions Game.ServerBrowser/ServerBrowserDialog.cs
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ void BlacklistsChanged() { }

void UpdateStatusText(Span<char> code) { }

[UiMessage("PageChanged")]
void OnGameListChanged() { }

public ServerBrowserDialog? GetInstance() => Instance;
Expand Down Expand Up @@ -202,6 +203,7 @@ ReadOnlySpan<char> GetActiveGameName() {

public CGameID GetActiveAppID() => LimitAppID;

[UiMessage("ActivateGameName")]
void OnActiveGameName(KeyValues kv) {
ModDir = kv.GetString("name", "").ToString();
GameName = kv.GetString("game", "").ToString();
Expand All @@ -218,10 +220,13 @@ void ReloadFilterSettings() {
History.LoadFilterSettings();
}

[UiMessage("ConnectedToGame")]
void OnConnectToGame(KeyValues messageValues) { }

[UiMessage("DisconnectedFromGame")]
void OnDisconnectFromGame() { }

[UiMessage("LoadingStarted")]
void OnLoadingStarted() { }

public override void ActivateBuildMode() { }
Expand All @@ -231,27 +236,4 @@ bool GetDefaultScreenPosition(out int x, out int y, out int wide, out int tall)
}

public override void OnKeyCodePressed(ButtonCode code) { }

public override void OnMessage(KeyValues message, IPanel? from) {
switch (message.Name) {
case "PageChanged":
OnGameListChanged();
break;
case "ActivateGameName":
OnActiveGameName(message);
break;
case "ConnectedToGame":
OnConnectToGame(message);
break;
case "DisconnectedFromGame":
OnDisconnectFromGame();
break;
case "LoadingStarted":
OnLoadingStarted();
break;
default:
base.OnMessage(message, from);
break;
}
}
}
Loading
Loading