Revert "Remove some BUI boilerplate" (#30214)

Revert "Remove some BUI boilerplate (#28399)"

This reverts commit cbf329a82d.
This commit is contained in:
Nemanja
2024-07-20 20:42:27 -04:00
committed by GitHub
parent 6d664c9157
commit cb0ba66be3
137 changed files with 1755 additions and 1096 deletions

View File

@@ -1,7 +1,5 @@
using Content.Shared.Atmos.Components;
using JetBrains.Annotations;
using Robust.Client.GameObjects;
using Robust.Client.UserInterface;
namespace Content.Client.UserInterface.Systems.Atmos.GasTank
{
@@ -15,7 +13,7 @@ namespace Content.Client.UserInterface.Systems.Atmos.GasTank
{
}
public void SetOutputPressure(float value)
public void SetOutputPressure(in float value)
{
SendMessage(new GasTankSetPressureMessage
{
@@ -31,10 +29,9 @@ namespace Content.Client.UserInterface.Systems.Atmos.GasTank
protected override void Open()
{
base.Open();
_window = this.CreateWindow<GasTankWindow>();
_window.SetTitle(EntMan.GetComponent<MetaDataComponent>(Owner).EntityName);
_window.OnOutputPressure += SetOutputPressure;
_window.OnToggleInternals += ToggleInternals;
_window = new GasTankWindow(this, EntMan.GetComponent<MetaDataComponent>(Owner).EntityName);
_window.OnClose += Close;
_window.OpenCentered();
}
protected override void UpdateState(BoundUserInterfaceState state)

View File

@@ -15,28 +15,23 @@ namespace Content.Client.UserInterface.Systems.Atmos.GasTank;
public sealed class GasTankWindow
: BaseWindow
{
[Dependency] private readonly IResourceCache _cache = default!;
private readonly RichTextLabel _lblPressure;
private readonly FloatSpinBox _spbPressure;
private readonly RichTextLabel _lblInternals;
private readonly Button _btnInternals;
private readonly Label _topLabel;
public event Action<float>? OnOutputPressure;
public event Action? OnToggleInternals;
public GasTankWindow()
public GasTankWindow(GasTankBoundUserInterface owner, string uidName)
{
Control contentContainer;
BoxContainer topContainer;
TextureButton btnClose;
var resourceCache = IoCManager.Resolve<IResourceCache>();
var rootContainer = new LayoutContainer { Name = "GasTankRoot" };
AddChild(rootContainer);
MouseFilter = MouseFilterMode.Stop;
var panelTex = _cache.GetTexture("/Textures/Interface/Nano/button.svg.96dpi.png");
var panelTex = resourceCache.GetTexture("/Textures/Interface/Nano/button.svg.96dpi.png");
var back = new StyleBoxTexture
{
Texture = panelTex,
@@ -83,17 +78,7 @@ public sealed class GasTankWindow
LayoutContainer.SetAnchorPreset(topContainerWrap, LayoutContainer.LayoutPreset.Wide);
var font = _cache.GetFont("/Fonts/Boxfont-round/Boxfont Round.ttf", 13);
_topLabel = new Label
{
FontOverride = font,
FontColorOverride = StyleNano.NanoGold,
VerticalAlignment = VAlignment.Center,
HorizontalExpand = true,
HorizontalAlignment = HAlignment.Left,
Margin = new Thickness(0, 0, 20, 0),
};
var font = resourceCache.GetFont("/Fonts/Boxfont-round/Boxfont Round.ttf", 13);
var topRow = new BoxContainer
{
@@ -101,7 +86,16 @@ public sealed class GasTankWindow
Margin = new Thickness(4, 2, 12, 2),
Children =
{
_topLabel,
(new Label
{
Text = uidName,
FontOverride = font,
FontColorOverride = StyleNano.NanoGold,
VerticalAlignment = VAlignment.Center,
HorizontalExpand = true,
HorizontalAlignment = HAlignment.Left,
Margin = new Thickness(0, 0, 20, 0),
}),
(btnClose = new TextureButton
{
StyleClasses = {DefaultWindow.StyleClassWindowCloseButton},
@@ -174,22 +168,17 @@ public sealed class GasTankWindow
// Handlers
_spbPressure.OnValueChanged += args =>
{
OnOutputPressure?.Invoke(args.Value);
owner.SetOutputPressure(args.Value);
};
_btnInternals.OnPressed += args =>
{
OnToggleInternals?.Invoke();
owner.ToggleInternals();
};
btnClose.OnPressed += _ => Close();
}
public void SetTitle(string name)
{
_topLabel.Text = name;
}
public void UpdateState(GasTankBoundUserInterfaceState state)
{
_lblPressure.SetMarkup(Loc.GetString("gas-tank-window-tank-pressure-text", ("tankPressure", $"{state.TankPressure:0.##}")));