Files
BarotraumaModServer/LocalMods/More Level Content/CSharp/Client/UI/PatchNotes.cs
2026-06-09 00:42:10 +03:00

74 lines
3.2 KiBLFS
C#
Executable File

using Barotrauma.Extensions;
using Microsoft.Xna.Framework;
using Barotrauma.MoreLevelContent.Config;
using MoreLevelContent;
namespace Barotrauma.MoreLevelContent.Client.UI
{
public class PatchNotes
{
private readonly GUIFrame mainFrame;
private readonly GUIFrame backgroundBlocker;
private readonly GUIFrame contentFrame;
private readonly GUILayoutGroup bottom;
public static PatchNotes Instance { get; private set; }
public PatchNotes()
{
backgroundBlocker = new GUIFrame(new RectTransform(Vector2.One, Screen.Selected.Frame.RectTransform, Anchor.Center), style: null);
_ = new GUIFrame(new RectTransform(GUI.Canvas.RelativeSize, backgroundBlocker.RectTransform, Anchor.Center), style: "GUIBackgroundBlocker");
var mainParent = new GUIFrame(new RectTransform(new Vector2(0.5f, 0.55f), backgroundBlocker.RectTransform, Anchor.Center, scaleBasis: ScaleBasis.Smallest) { MinSize = new Point(640, 480) }).RectTransform;
mainFrame = new GUIFrame(new RectTransform(Vector2.One, mainParent));
var mainLayout = new GUILayoutGroup(new RectTransform(Vector2.One * 0.95f, mainFrame.RectTransform, Anchor.Center, Pivot.Center),
isHorizontal: false, childAnchor: Anchor.TopRight);
_ = new GUITextBlock(new RectTransform((1.0f, 0.07f), mainLayout.RectTransform), TextManager.GetWithVariable("mlc.patchnote", "[version]", Main.Version),
font: GUIStyle.LargeFont);
// Padding
_ = new GUIFrame(new RectTransform((0.01f, 0.01f), mainLayout.RectTransform), style: null);
contentFrame = new GUIFrame(new RectTransform((1.0f, 0.8f), mainLayout.RectTransform),
style: "InnerFrame");
_ = new GUITextBlock(new RectTransform((1.0f, 1.0f), contentFrame.RectTransform), TextManager.Get("mlc.patchnotes").Value ?? "hot spicy meme action", textAlignment: Alignment.TopLeft);
// Padding
_ = new GUIFrame(new RectTransform((0.01f, 0.01f), mainLayout.RectTransform), style: null);
bottom = new GUILayoutGroup(new RectTransform((1.0f, 0.04f), mainLayout.RectTransform), isHorizontal: true) { Stretch = true, RelativeSpacing = 0.01f };
CreateBottomButton();
}
private void CreateBottomButton()
{
GUIButton cancelButton =
new GUIButton(new RectTransform(new Vector2(0.5f, 0.5f), bottom.RectTransform), text: "close")
{
OnClicked = (btn, obj) =>
{
Close();
return false;
}
};
}
public static void Open()
{
Instance?.Close();
Instance = new PatchNotes();
ConfigManager.ShouldDisplayPatchNotes = false;
}
public void Close()
{
mainFrame.Parent.RemoveChild(mainFrame);
backgroundBlocker.Parent.RemoveChild(backgroundBlocker);
if (Instance == this) { Instance = null; }
}
}
}