Files
crystall-punk-14/Content.Client/Info/LinkBanner.cs
2022-12-02 17:23:43 -08:00

53 lines
1.9 KiB
C#

using Content.Client.Changelog;
using Content.Client.Credits;
using Content.Client.UserInterface.Systems.EscapeMenu;
using Content.Shared.CCVar;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Shared.Configuration;
using Robust.Shared.IoC;
using Robust.Shared.Localization;
using Robust.Shared.Utility;
namespace Content.Client.Info
{
public sealed class LinkBanner : BoxContainer
{
public LinkBanner()
{
var buttons = new BoxContainer
{
Orientation = LayoutOrientation.Horizontal
};
AddChild(buttons);
var uriOpener = IoCManager.Resolve<IUriOpener>();
var cfg = IoCManager.Resolve<IConfigurationManager>();
var rulesButton = new Button() {Text = Loc.GetString("server-info-rules-button")};
rulesButton.OnPressed += args => new RulesAndInfoWindow().Open();
buttons.AddChild(rulesButton);
AddInfoButton("server-info-discord-button", CCVars.InfoLinksDiscord);
AddInfoButton("server-info-website-button", CCVars.InfoLinksWebsite);
AddInfoButton("server-info-wiki-button", CCVars.InfoLinksWiki);
AddInfoButton("server-info-forum-button", CCVars.InfoLinksForum);
var changelogButton = new ChangelogButton();
changelogButton.OnPressed += args => UserInterfaceManager.GetUIController<ChangelogUIController>().ToggleWindow();
buttons.AddChild(changelogButton);
void AddInfoButton(string loc, CVarDef<string> cVar)
{
var link = cfg.GetCVar(cVar);
if (link == "")
return;
var button = new Button { Text = Loc.GetString(loc) };
button.OnPressed += _ => uriOpener.OpenUri(link);
buttons.AddChild(button);
}
}
}
}