65 lines
No EOL
1.9 KiB
C#
65 lines
No EOL
1.9 KiB
C#
using CounterStrikeSharp.API.Core;
|
|
using WASDSharedAPI;
|
|
|
|
namespace WASDMenuAPI.Classes;
|
|
|
|
public class WasdManager : IWasdMenuManager
|
|
{
|
|
public void OpenMainMenu(CCSPlayerController? player, IWasdMenu? menu)
|
|
{
|
|
if(!TryGetPlayer(player, out var menuPlayer)) return;
|
|
menuPlayer.OpenMainMenu((WasdMenu?)menu);
|
|
}
|
|
|
|
public void CloseMenu(CCSPlayerController? player)
|
|
{
|
|
if (!TryGetPlayer(player, out var menuPlayer)) return;
|
|
menuPlayer.OpenMainMenu(null);
|
|
}
|
|
|
|
public void CloseSubMenu(CCSPlayerController? player)
|
|
{
|
|
if (!TryGetPlayer(player, out var menuPlayer)) return;
|
|
menuPlayer.CloseSubMenu();
|
|
}
|
|
|
|
public void CloseAllSubMenus(CCSPlayerController? player)
|
|
{
|
|
if (!TryGetPlayer(player, out var menuPlayer)) return;
|
|
menuPlayer.CloseAllSubMenus();
|
|
}
|
|
|
|
public void OpenSubMenu(CCSPlayerController? player, IWasdMenu? menu)
|
|
{
|
|
if (!TryGetPlayer(player, out var menuPlayer)) return;
|
|
menuPlayer.OpenSubMenu(menu);
|
|
}
|
|
|
|
public IWasdMenu CreateMenu(string title = "", string controlText = "")
|
|
{
|
|
WasdMenu menu = new WasdMenu
|
|
{
|
|
Title = title,
|
|
ControlText = controlText
|
|
};
|
|
return menu;
|
|
}
|
|
|
|
public bool HasMenu(CCSPlayerController? player)
|
|
{
|
|
return TryGetPlayer(player, out _);
|
|
}
|
|
|
|
public void UpdateActiveMenu(CCSPlayerController? player, Dictionary<string, Action<CCSPlayerController, IWasdMenuOption>> list)
|
|
{
|
|
if (!TryGetPlayer(player, out var menuPlayer)) return;
|
|
menuPlayer.UpdateActiveMenu(list);
|
|
}
|
|
|
|
private bool TryGetPlayer(CCSPlayerController? player, out WasdMenuPlayer menuPlayer)
|
|
{
|
|
menuPlayer = null!;
|
|
if (player == null || !player.IsValid || player.IsBot || player.SteamID == 0) return false;
|
|
return WASDMenuAPI.Players.TryGetValue(player.SteamID, out menuPlayer);
|
|
}
|
|
} |