diff --git a/Content.Client/Chemistry/UI/ChemMasterBoundUserInterface.cs b/Content.Client/Chemistry/UI/ChemMasterBoundUserInterface.cs
index d1594c11ea..8c3f96bb47 100644
--- a/Content.Client/Chemistry/UI/ChemMasterBoundUserInterface.cs
+++ b/Content.Client/Chemistry/UI/ChemMasterBoundUserInterface.cs
@@ -41,8 +41,8 @@ namespace Content.Client.Chemistry.UI
_window.EjectButton.OnPressed += _ => PrepareData(UiAction.Eject, null, null, null);
_window.BufferTransferButton.OnPressed += _ => PrepareData(UiAction.Transfer, null, null, null);
_window.BufferDiscardButton.OnPressed += _ => PrepareData(UiAction.Discard, null, null, null);
- _window.CreatePills.OnPressed += _ => PrepareData(UiAction.CreatePills, null, _window.PillAmount.Value, null);
- _window.CreateBottles.OnPressed += _ => PrepareData(UiAction.CreateBottles, null, null, _window.BottleAmount.Value);
+ _window.CreatePillButton.OnPressed += _ => PrepareData(UiAction.CreatePills, null, _window.PillAmount.Value, null);
+ _window.CreateBottleButton.OnPressed += _ => PrepareData(UiAction.CreateBottles, null, null, _window.BottleAmount.Value);
_window.OnChemButtonPressed += (args, button) => PrepareData(UiAction.ChemButton, button, null, null);
}
diff --git a/Content.Client/Chemistry/UI/ChemMasterWindow.cs b/Content.Client/Chemistry/UI/ChemMasterWindow.cs
deleted file mode 100644
index 5f3a895e35..0000000000
--- a/Content.Client/Chemistry/UI/ChemMasterWindow.cs
+++ /dev/null
@@ -1,433 +0,0 @@
-using System;
-using System.Linq;
-using Content.Client.Stylesheets;
-using Content.Client.UserInterface;
-using Content.Shared.Chemistry.Components;
-using Content.Shared.Chemistry.Reagent;
-using Robust.Client.Graphics;
-using Robust.Client.UserInterface;
-using Robust.Client.UserInterface.Controls;
-using Robust.Client.UserInterface.CustomControls;
-using Robust.Shared.GameObjects;
-using Robust.Shared.IoC;
-using Robust.Shared.Localization;
-using Robust.Shared.Maths;
-using Robust.Shared.Prototypes;
-using static Content.Shared.Chemistry.Components.SharedChemMasterComponent;
-using static Robust.Client.UserInterface.Controls.BaseButton;
-using static Robust.Client.UserInterface.Controls.BoxContainer;
-
-namespace Content.Client.Chemistry.UI
-{
- ///
- /// Client-side UI used to control a
- ///
- public class ChemMasterWindow : SS14Window
- {
- [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
-
- /// Contains info about the reagent container such as it's contents, if one is loaded into the dispenser.
- private readonly BoxContainer ContainerInfo;
-
- private readonly BoxContainer BufferInfo;
-
- private readonly BoxContainer PackagingInfo;
-
- /// Ejects the reagent container from the dispenser.
- public Button EjectButton { get; }
-
- public Button BufferTransferButton { get; }
- public Button BufferDiscardButton { get; }
-
- public bool BufferModeTransfer = true;
-
- public event Action? OnChemButtonPressed;
-
- public BoxContainer PillInfo { get; set; }
- public BoxContainer BottleInfo { get; set; }
- public SpinBox PillAmount { get; set; }
- public SpinBox BottleAmount { get; set; }
- public Button CreatePills { get; }
- public Button CreateBottles { get; }
-
- ///
- /// Create and initialize the chem master UI client-side. Creates the basic layout,
- /// actual data isn't filled in until the server sends data about the chem master.
- ///
- public ChemMasterWindow()
- {
- MinSize = SetSize = (400, 525);
- IoCManager.InjectDependencies(this);
-
- Contents.AddChild(new BoxContainer
- {
- Orientation = LayoutOrientation.Vertical,
- Children =
- {
- //Container
- new BoxContainer
- {
- Orientation = LayoutOrientation.Horizontal,
- Children =
- {
- new Label {Text = Loc.GetString("chem-master-window-container-label")},
- new Control {HorizontalExpand = true},
- (EjectButton = new Button {Text = Loc.GetString("chem-master-window-eject-button")})
- }
- },
- //Wrap the container info in a PanelContainer so we can color it's background differently.
- new PanelContainer
- {
- VerticalExpand = true,
- SizeFlagsStretchRatio = 6,
- MinSize = (0, 200),
- PanelOverride = new StyleBoxFlat
- {
- BackgroundColor = new Color(27, 27, 30)
- },
- Children =
- {
- //Currently empty, when server sends state data this will have container contents and fill volume.
- (ContainerInfo = new BoxContainer
- {
- Orientation = LayoutOrientation.Vertical,
- HorizontalExpand = true,
- Children =
- {
- new Label
- {
- Text = Loc.GetString("chem-master-window-no-container-loaded-text")
- }
- }
- }),
- }
- },
-
- //Padding
- new Control {MinSize = (0.0f, 10.0f)},
-
- //Buffer
- new BoxContainer
- {
- Orientation = LayoutOrientation.Horizontal,
- Children =
- {
- new Label {Text = Loc.GetString("chem-master-window-buffer-text")},
- new Control {HorizontalExpand = true},
- (BufferTransferButton = new Button {Text = Loc.GetString("chem-master-window-transfer-button"), Pressed = BufferModeTransfer, StyleClasses = { StyleBase.ButtonOpenRight }}),
- (BufferDiscardButton = new Button {Text = Loc.GetString("chem-master-window-discard-button"), Pressed = !BufferModeTransfer, StyleClasses = { StyleBase.ButtonOpenLeft }})
- }
- },
-
- //Wrap the buffer info in a PanelContainer so we can color it's background differently.
- new PanelContainer
- {
- VerticalExpand = true,
- SizeFlagsStretchRatio = 6,
- MinSize = (0, 100),
- PanelOverride = new StyleBoxFlat
- {
- BackgroundColor = new Color(27, 27, 30)
- },
- Children =
- {
- //Buffer reagent list
- (BufferInfo = new BoxContainer
- {
- Orientation = LayoutOrientation.Vertical,
- HorizontalExpand = true,
- Children =
- {
- new Label
- {
- Text = Loc.GetString("chem-master-window-buffer-empty-text")
- }
- }
- }),
- }
- },
-
- //Padding
- new Control {MinSize = (0.0f, 10.0f)},
-
- //Packaging
- new BoxContainer
- {
- Orientation = LayoutOrientation.Horizontal,
- Children =
- {
- new Label {Text = $"{Loc.GetString("chem-master-window-packaging-text")} "},
- }
- },
-
- //Wrap the packaging info in a PanelContainer so we can color it's background differently.
- new PanelContainer
- {
- VerticalExpand = true,
- SizeFlagsStretchRatio = 6,
- MinSize = (0, 100),
- PanelOverride = new StyleBoxFlat
- {
- BackgroundColor = new Color(27, 27, 30)
- },
- Children =
- {
- //Packaging options
- (PackagingInfo = new BoxContainer
- {
- Orientation = LayoutOrientation.Vertical,
- HorizontalExpand = true,
- }),
-
- }
- },
- }
- });
-
- //Pills
- PillInfo = new BoxContainer
- {
- Orientation = LayoutOrientation.Horizontal,
- Children =
- {
- new Label
- {
- Text = $"{Loc.GetString("chem-master-window-pills-label")} "
- },
-
- },
-
- };
- PackagingInfo.AddChild(PillInfo);
-
- var pillPadding = new Control {HorizontalExpand = true};
- PillInfo.AddChild(pillPadding);
-
- PillAmount = new SpinBox
- {
- HorizontalExpand = true,
- Value = 1
- };
- PillAmount.InitDefaultButtons();
- PillAmount.IsValid = (n) => (n > 0 && n <= 10);
- PillInfo.AddChild(PillAmount);
-
- var pillVolume = new Label
- {
- Text = $" {Loc.GetString("chem-master-window-max-pills-volume-text")} ",
- StyleClasses = {StyleNano.StyleClassLabelSecondaryColor}
- };
- PillInfo.AddChild((pillVolume));
-
- CreatePills = new Button {Text = Loc.GetString("chem-master-window-create-pill-button") };
- PillInfo.AddChild(CreatePills);
-
- //Bottles
- BottleInfo = new BoxContainer
- {
- Orientation = LayoutOrientation.Horizontal,
- Children =
- {
- new Label
- {
- Text = Loc.GetString("cham-master-window-bottles-label")
- },
-
- },
-
- };
- PackagingInfo.AddChild(BottleInfo);
-
- var bottlePadding = new Control {HorizontalExpand = true};
- BottleInfo.AddChild(bottlePadding);
-
- BottleAmount = new SpinBox
- {
- HorizontalExpand = true,
- Value = 1
- };
- BottleAmount.InitDefaultButtons();
- BottleAmount.IsValid = (n) => (n > 0 && n <= 10);
- BottleInfo.AddChild(BottleAmount);
-
- var bottleVolume = new Label
- {
- Text = $" {Loc.GetString("chem-master-window-max-bottle-volume-text")} ",
- StyleClasses = {StyleNano.StyleClassLabelSecondaryColor}
- };
- BottleInfo.AddChild((bottleVolume));
-
- CreateBottles = new Button {Text = Loc.GetString("chem-master-window-create-bottle-button") };
- BottleInfo.AddChild(CreateBottles);
- }
-
- private ChemButton MakeChemButton(string text, ReagentUnit amount, string id, bool isBuffer, string styleClass)
- {
- var button = new ChemButton(text, amount, id, isBuffer, styleClass);
- button.OnPressed += args
- => OnChemButtonPressed?.Invoke(args, button);
- return button;
- }
-
- ///
- /// Update the UI state when new state data is received from the server.
- ///
- /// State data sent by the server.
- public void UpdateState(BoundUserInterfaceState state)
- {
- var castState = (ChemMasterBoundUserInterfaceState) state;
- Title = castState.DispenserName;
- UpdatePanelInfo(castState);
- if (Contents.Children != null)
- {
- ButtonHelpers.SetButtonDisabledRecursive(Contents, !castState.HasPower);
- EjectButton.Disabled = !castState.HasBeaker;
- }
- }
-
- ///
- /// Update the container, buffer, and packaging panels.
- ///
- /// State data for the dispenser.
- private void UpdatePanelInfo(ChemMasterBoundUserInterfaceState state)
- {
- BufferModeTransfer = state.BufferModeTransfer;
- BufferTransferButton.Pressed = BufferModeTransfer;
- BufferDiscardButton.Pressed = !BufferModeTransfer;
-
- ContainerInfo.Children.Clear();
-
- if (!state.HasBeaker)
- {
- ContainerInfo.Children.Add(new Label {Text = Loc.GetString("chem-master-window-no-container-loaded-text") });
- return;
- }
-
- ContainerInfo.Children.Add(new BoxContainer // Name of the container and its fill status (Ex: 44/100u)
- {
- Orientation = LayoutOrientation.Horizontal,
- Children =
- {
- new Label {Text = $"{state.ContainerName}: "},
- new Label
- {
- Text = $"{state.BeakerCurrentVolume}/{state.BeakerMaxVolume}",
- StyleClasses = {StyleNano.StyleClassLabelSecondaryColor}
- }
- }
- });
-
- foreach (var reagent in state.ContainerReagents)
- {
- var name = Loc.GetString("chem-master-window-unknown-reagent-text");
- //Try to the prototype for the given reagent. This gives us it's name.
- if (_prototypeManager.TryIndex(reagent.ReagentId, out ReagentPrototype? proto))
- {
- name = proto.Name;
- }
-
- if (proto != null)
- {
- ContainerInfo.Children.Add(new BoxContainer
- {
- Orientation = LayoutOrientation.Horizontal,
- Children =
- {
- new Label {Text = $"{name}: "},
- new Label
- {
- Text = $"{reagent.Quantity}u",
- StyleClasses = {StyleNano.StyleClassLabelSecondaryColor}
- },
-
- //Padding
- new Control {HorizontalExpand = true},
-
- MakeChemButton("1", ReagentUnit.New(1), reagent.ReagentId, false, StyleBase.ButtonOpenRight),
- MakeChemButton("5", ReagentUnit.New(5), reagent.ReagentId, false, StyleBase.ButtonOpenBoth),
- MakeChemButton("10", ReagentUnit.New(10), reagent.ReagentId, false, StyleBase.ButtonOpenBoth),
- MakeChemButton("25", ReagentUnit.New(25), reagent.ReagentId, false, StyleBase.ButtonOpenBoth),
- MakeChemButton(Loc.GetString("chem-master-window-buffer-all-amount"), ReagentUnit.New(-1), reagent.ReagentId, false, StyleBase.ButtonOpenLeft),
- }
- });
- }
- }
-
- BufferInfo.Children.Clear();
-
- if (!state.BufferReagents.Any())
- {
- BufferInfo.Children.Add(new Label {Text = Loc.GetString("chem-master-window-buffer-empty-text") });
- return;
- }
-
- var bufferHBox = new BoxContainer
- {
- Orientation = LayoutOrientation.Horizontal
- };
- BufferInfo.AddChild(bufferHBox);
-
- var bufferLabel = new Label { Text = $"{Loc.GetString("chem-master-window-buffer-label")} " };
- bufferHBox.AddChild(bufferLabel);
- var bufferVol = new Label
- {
- Text = $"{state.BufferCurrentVolume}",
- StyleClasses = {StyleNano.StyleClassLabelSecondaryColor}
- };
- bufferHBox.AddChild(bufferVol);
-
- foreach (var reagent in state.BufferReagents)
- {
- var name = Loc.GetString("chem-master-window-unknown-reagent-text");
- //Try to the prototype for the given reagent. This gives us it's name.
- if (_prototypeManager.TryIndex(reagent.ReagentId, out ReagentPrototype? proto))
- {
- name = proto.Name;
- }
-
- if (proto != null)
- {
- BufferInfo.Children.Add(new BoxContainer
- {
- Orientation = LayoutOrientation.Horizontal,
- //SizeFlagsHorizontal = SizeFlags.ShrinkEnd,
- Children =
- {
- new Label {Text = $"{name}: "},
- new Label
- {
- Text = $"{reagent.Quantity}u",
- StyleClasses = {StyleNano.StyleClassLabelSecondaryColor}
- },
-
- //Padding
- new Control {HorizontalExpand = true},
-
- MakeChemButton("1", ReagentUnit.New(1), reagent.ReagentId, true, StyleBase.ButtonOpenRight),
- MakeChemButton("5", ReagentUnit.New(5), reagent.ReagentId, true, StyleBase.ButtonOpenBoth),
- MakeChemButton("10", ReagentUnit.New(10), reagent.ReagentId, true, StyleBase.ButtonOpenBoth),
- MakeChemButton("25", ReagentUnit.New(25), reagent.ReagentId, true, StyleBase.ButtonOpenBoth),
- MakeChemButton(Loc.GetString("chem-master-window-buffer-all-amount"), ReagentUnit.New(-1), reagent.ReagentId, true, StyleBase.ButtonOpenLeft),
- }
- });
- }
- }
- }
- }
-
- public class ChemButton : Button
- {
- public ReagentUnit Amount { get; set; }
- public bool isBuffer = true;
- public string Id { get; set; }
- public ChemButton(string _text, ReagentUnit _amount, string _id, bool _isBuffer, string _styleClass)
- {
- AddStyleClass(_styleClass);
- Text = _text;
- Amount = _amount;
- Id = _id;
- isBuffer = _isBuffer;
- }
-
- }
-}
diff --git a/Content.Client/Chemistry/UI/ChemMasterWindow.xaml b/Content.Client/Chemistry/UI/ChemMasterWindow.xaml
new file mode 100644
index 0000000000..929ddb53dc
--- /dev/null
+++ b/Content.Client/Chemistry/UI/ChemMasterWindow.xaml
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Content.Client/Chemistry/UI/ChemMasterWindow.xaml.cs b/Content.Client/Chemistry/UI/ChemMasterWindow.xaml.cs
new file mode 100644
index 0000000000..306000dfd6
--- /dev/null
+++ b/Content.Client/Chemistry/UI/ChemMasterWindow.xaml.cs
@@ -0,0 +1,219 @@
+using System;
+using System.Linq;
+using Content.Client.Stylesheets;
+using Content.Client.UserInterface;
+using Content.Shared.Chemistry.Components;
+using Content.Shared.Chemistry.Reagent;
+using Robust.Client.AutoGenerated;
+using Robust.Client.UserInterface;
+using Robust.Client.UserInterface.Controls;
+using Robust.Client.UserInterface.CustomControls;
+using Robust.Client.UserInterface.XAML;
+using Robust.Shared.GameObjects;
+using Robust.Shared.IoC;
+using Robust.Shared.Localization;
+using Robust.Shared.Prototypes;
+using static Content.Shared.Chemistry.Components.SharedChemMasterComponent;
+using static Robust.Client.UserInterface.Controls.BoxContainer;
+
+namespace Content.Client.Chemistry.UI
+{
+ ///
+ /// Client-side UI used to control a
+ ///
+ [GenerateTypedNameReferences]
+ public partial class ChemMasterWindow : SS14Window
+ {
+ [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
+ public event Action? OnChemButtonPressed;
+
+ private static bool IsSpinValid(int n)
+ {
+ return n is > 0 and <= 10;
+ }
+
+ ///
+ /// Create and initialize the chem master UI client-side. Creates the basic layout,
+ /// actual data isn't filled in until the server sends data about the chem master.
+ ///
+ public ChemMasterWindow()
+ {
+ RobustXamlLoader.Load(this);
+ IoCManager.InjectDependencies(this);
+
+ PillAmount.IsValid = IsSpinValid;
+ BottleAmount.IsValid = IsSpinValid;
+ PillAmount.InitDefaultButtons();
+ BottleAmount.InitDefaultButtons();
+ }
+
+ private ChemButton MakeChemButton(string text, ReagentUnit amount, string id, bool isBuffer, string styleClass)
+ {
+ var button = new ChemButton(text, amount, id, isBuffer, styleClass);
+ button.OnPressed += args
+ => OnChemButtonPressed?.Invoke(args, button);
+ return button;
+ }
+
+ ///
+ /// Update the UI state when new state data is received from the server.
+ ///
+ /// State data sent by the server.
+ public void UpdateState(BoundUserInterfaceState state)
+ {
+ var castState = (ChemMasterBoundUserInterfaceState) state;
+ Title = castState.DispenserName;
+ UpdatePanelInfo(castState);
+ if (Contents.Children != null)
+ {
+ ButtonHelpers.SetButtonDisabledRecursive(Contents, !castState.HasPower);
+ EjectButton.Disabled = !castState.HasBeaker;
+ }
+ }
+
+ ///
+ /// Update the container, buffer, and packaging panels.
+ ///
+ /// State data for the dispenser.
+ private void UpdatePanelInfo(ChemMasterBoundUserInterfaceState state)
+ {
+ var bufferModeTransfer = state.BufferModeTransfer;
+ BufferTransferButton.Pressed = bufferModeTransfer;
+ BufferDiscardButton.Pressed = !bufferModeTransfer;
+
+ ContainerInfo.Children.Clear();
+
+ if (!state.HasBeaker)
+ {
+ ContainerInfo.Children.Add(new Label {Text = Loc.GetString("chem-master-window-no-container-loaded-text") });
+ return;
+ }
+
+ ContainerInfo.Children.Add(new BoxContainer // Name of the container and its fill status (Ex: 44/100u)
+ {
+ Orientation = LayoutOrientation.Horizontal,
+ Children =
+ {
+ new Label {Text = $"{state.ContainerName}: "},
+ new Label
+ {
+ Text = $"{state.BeakerCurrentVolume}/{state.BeakerMaxVolume}",
+ StyleClasses = {StyleNano.StyleClassLabelSecondaryColor}
+ }
+ }
+ });
+
+ foreach (var reagent in state.ContainerReagents)
+ {
+ var name = Loc.GetString("chem-master-window-unknown-reagent-text");
+ //Try to the prototype for the given reagent. This gives us it's name.
+ if (_prototypeManager.TryIndex(reagent.ReagentId, out ReagentPrototype? proto))
+ {
+ name = proto.Name;
+ }
+
+ if (proto != null)
+ {
+ ContainerInfo.Children.Add(new BoxContainer
+ {
+ Orientation = LayoutOrientation.Horizontal,
+ Children =
+ {
+ new Label {Text = $"{name}: "},
+ new Label
+ {
+ Text = $"{reagent.Quantity}u",
+ StyleClasses = {StyleNano.StyleClassLabelSecondaryColor}
+ },
+
+ //Padding
+ new Control {HorizontalExpand = true},
+
+ MakeChemButton("1", ReagentUnit.New(1), reagent.ReagentId, false, StyleBase.ButtonOpenRight),
+ MakeChemButton("5", ReagentUnit.New(5), reagent.ReagentId, false, StyleBase.ButtonOpenBoth),
+ MakeChemButton("10", ReagentUnit.New(10), reagent.ReagentId, false, StyleBase.ButtonOpenBoth),
+ MakeChemButton("25", ReagentUnit.New(25), reagent.ReagentId, false, StyleBase.ButtonOpenBoth),
+ MakeChemButton(Loc.GetString("chem-master-window-buffer-all-amount"), ReagentUnit.New(-1), reagent.ReagentId, false, StyleBase.ButtonOpenLeft),
+ }
+ });
+ }
+ }
+
+ BufferInfo.Children.Clear();
+
+ if (!state.BufferReagents.Any())
+ {
+ BufferInfo.Children.Add(new Label {Text = Loc.GetString("chem-master-window-buffer-empty-text") });
+ return;
+ }
+
+ var bufferHBox = new BoxContainer
+ {
+ Orientation = LayoutOrientation.Horizontal
+ };
+ BufferInfo.AddChild(bufferHBox);
+
+ var bufferLabel = new Label { Text = $"{Loc.GetString("chem-master-window-buffer-label")} " };
+ bufferHBox.AddChild(bufferLabel);
+ var bufferVol = new Label
+ {
+ Text = $"{state.BufferCurrentVolume}",
+ StyleClasses = {StyleNano.StyleClassLabelSecondaryColor}
+ };
+ bufferHBox.AddChild(bufferVol);
+
+ foreach (var reagent in state.BufferReagents)
+ {
+ var name = Loc.GetString("chem-master-window-unknown-reagent-text");
+ //Try to the prototype for the given reagent. This gives us it's name.
+ if (_prototypeManager.TryIndex(reagent.ReagentId, out ReagentPrototype? proto))
+ {
+ name = proto.Name;
+ }
+
+ if (proto != null)
+ {
+ BufferInfo.Children.Add(new BoxContainer
+ {
+ Orientation = LayoutOrientation.Horizontal,
+ //SizeFlagsHorizontal = SizeFlags.ShrinkEnd,
+ Children =
+ {
+ new Label {Text = $"{name}: "},
+ new Label
+ {
+ Text = $"{reagent.Quantity}u",
+ StyleClasses = {StyleNano.StyleClassLabelSecondaryColor}
+ },
+
+ //Padding
+ new Control {HorizontalExpand = true},
+
+ MakeChemButton("1", ReagentUnit.New(1), reagent.ReagentId, true, StyleBase.ButtonOpenRight),
+ MakeChemButton("5", ReagentUnit.New(5), reagent.ReagentId, true, StyleBase.ButtonOpenBoth),
+ MakeChemButton("10", ReagentUnit.New(10), reagent.ReagentId, true, StyleBase.ButtonOpenBoth),
+ MakeChemButton("25", ReagentUnit.New(25), reagent.ReagentId, true, StyleBase.ButtonOpenBoth),
+ MakeChemButton(Loc.GetString("chem-master-window-buffer-all-amount"), ReagentUnit.New(-1), reagent.ReagentId, true, StyleBase.ButtonOpenLeft),
+ }
+ });
+ }
+ }
+ }
+ }
+
+ public class ChemButton : Button
+ {
+ public ReagentUnit Amount { get; set; }
+ public bool isBuffer = true;
+ public string Id { get; set; }
+ public ChemButton(string _text, ReagentUnit _amount, string _id, bool _isBuffer, string _styleClass)
+ {
+ AddStyleClass(_styleClass);
+ Text = _text;
+ Amount = _amount;
+ Id = _id;
+ isBuffer = _isBuffer;
+ }
+
+ }
+}
diff --git a/Content.Client/Chemistry/UI/ReagentDispenserBoundUserInterface.cs b/Content.Client/Chemistry/UI/ReagentDispenserBoundUserInterface.cs
index 54c8196b63..ba6bb80c34 100644
--- a/Content.Client/Chemistry/UI/ReagentDispenserBoundUserInterface.cs
+++ b/Content.Client/Chemistry/UI/ReagentDispenserBoundUserInterface.cs
@@ -33,10 +33,7 @@ namespace Content.Client.Chemistry.UI
base.Open();
//Setup window layout/elements
- _window = new ReagentDispenserWindow
- {
- Title = Loc.GetString("reagent-dispenser-bound-user-interface-title"),
- };
+ _window = new();
_window.OpenCentered();
_window.OnClose += Close;
diff --git a/Resources/Locale/en-US/chemistry/components/chem-master-component.ftl b/Resources/Locale/en-US/chemistry/components/chem-master-component.ftl
index 9cd25b3fc4..5300a3f37c 100644
--- a/Resources/Locale/en-US/chemistry/components/chem-master-component.ftl
+++ b/Resources/Locale/en-US/chemistry/components/chem-master-component.ftl
@@ -24,8 +24,8 @@ chem-master-window-discard-button = Discard
chem-master-window-packaging-text = Packaging
chem-master-window-pills-label = Pills:
chem-master-window-max-pills-volume-text = max 50u/each
-chem-master-window-max-bottle-volume-text = max 30u/each
+chem-master-window-max-bottles-volume-text = max 30u/each
chem-master-window-create-pill-button = Create
chem-master-window-create-bottle-button = Create
-cham-master-window-bottles-label = Bottles:
+chem-master-window-bottles-label = Bottles:
chem-master-window-unknown-reagent-text = Unknown reagent