using Content.Client.UserInterface.Controls;
using Content.Client.UserInterface.Controls.FancyTree;
using Content.Client.UserInterface.Systems.Info;
+using Content.Shared.CCVar;
using Content.Shared.Guidebook;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
+using Robust.Shared.Configuration;
using Robust.Shared.ContentPack;
using Robust.Shared.Prototypes;
[GenerateTypedNameReferences]
public sealed partial class GuidebookWindow : FancyWindow, ILinkClickHandler
{
+ [Dependency] private readonly IConfigurationManager _configuration = default!;
+ [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
[Dependency] private readonly IResourceManager _resourceManager = default!;
[Dependency] private readonly DocumentParsingManager _parsingMan = default!;
};
}
+ protected override void Opened()
+ {
+ base.Opened();
+
+ var guideProto = _configuration.GetCVar(CCVars.DefaultGuide);
+ if (_prototypeManager.TryIndex<GuideEntryPrototype>(guideProto, out var guideEntry))
+ {
+ if (Tree.Items.FirstOrDefault(x => x.Metadata is GuideEntry entry && entry.Id == guideProto) is { } item)
+ Tree.SetSelectedIndex(item.Index);
+ else
+ ShowGuide(guideEntry);
+ }
+ }
+
private void OnSelectionChanged(TreeItem? item)
{
if (item != null && item.Metadata is GuideEntry entry)
public static readonly CVarDef<string> RulesFile =
CVarDef.Create("server.rules_file", "DefaultRuleset", CVar.REPLICATED | CVar.SERVER);
+ /// <summary>
+ /// Guide entry that is displayed by default when a guide is opened.
+ /// </summary>
+ public static readonly CVarDef<string> DefaultGuide =
+ CVarDef.Create("server.default_guide", "NewPlayer", CVar.REPLICATED | CVar.SERVER);
+
/*
* Ambience
*/