diff --git a/Content.Client/Chemistry/UI/ReagentDispenserWindow.xaml b/Content.Client/Chemistry/UI/ReagentDispenserWindow.xaml index d9e480f132..3b812ba56b 100644 --- a/Content.Client/Chemistry/UI/ReagentDispenserWindow.xaml +++ b/Content.Client/Chemistry/UI/ReagentDispenserWindow.xaml @@ -32,19 +32,22 @@ StyleClasses="OpenLeft"/> - - - - - - - - - + + + + + + + + + + + + diff --git a/Content.Client/Chemistry/UI/ReagentDispenserWindow.xaml.cs b/Content.Client/Chemistry/UI/ReagentDispenserWindow.xaml.cs index a36cc2fe54..7fcf0191f2 100644 --- a/Content.Client/Chemistry/UI/ReagentDispenserWindow.xaml.cs +++ b/Content.Client/Chemistry/UI/ReagentDispenserWindow.xaml.cs @@ -1,4 +1,3 @@ -using System.Linq; using Content.Client.Stylesheets; using Content.Shared.Chemistry; using Content.Shared.Chemistry.Reagent; @@ -19,6 +18,7 @@ namespace Content.Client.Chemistry.UI public sealed partial class ReagentDispenserWindow : DefaultWindow { [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly IEntityManager _entityManager = default!; public event Action? OnDispenseReagentButtonPressed; public event Action? OnDispenseReagentButtonMouseEntered; public event Action? OnDispenseReagentButtonMouseExited; @@ -52,7 +52,7 @@ namespace Content.Client.Chemistry.UI /// Update the button grid of reagents which can be dispensed. /// /// Reagents which can be dispensed by this dispenser - public void UpdateReagentsList(List>> inventory) + public void UpdateReagentsList(List>> inventory) { if (ChemicalList == null) return; @@ -86,6 +86,9 @@ namespace Content.Client.Chemistry.UI UpdateContainerInfo(castState); UpdateReagentsList(castState.Inventory); + _entityManager.TryGetEntity(castState.OutputContainerEntity, out var outputContainerEnt); + View.SetEntity(outputContainerEnt); + // Disable the Clear & Eject button if no beaker ClearButton.Disabled = castState.OutputContainer is null; EjectButton.Disabled = castState.OutputContainer is null; @@ -134,7 +137,7 @@ namespace Content.Client.Chemistry.UI if (state.OutputContainer is null) { - ContainerInfo.Children.Add(new Label {Text = Loc.GetString("reagent-dispenser-window-no-container-loaded-text") }); + ContainerInfo.Children.Add(new Label { Text = Loc.GetString("reagent-dispenser-window-no-container-loaded-text") }); return; } @@ -159,11 +162,11 @@ namespace Content.Client.Chemistry.UI ? p.LocalizedName : Loc.GetString("reagent-dispenser-window-reagent-name-not-found-text"); - var nameLabel = new Label {Text = $"{localizedName}: "}; + var nameLabel = new Label { Text = $"{localizedName}: " }; var quantityLabel = new Label { Text = Loc.GetString("reagent-dispenser-window-quantity-label-text", ("quantity", quantity)), - StyleClasses = {StyleNano.StyleClassLabelSecondaryColor}, + StyleClasses = { StyleNano.StyleClassLabelSecondaryColor }, }; ContainerInfo.Children.Add(new BoxContainer diff --git a/Content.Server/Chemistry/EntitySystems/ReagentDispenserSystem.cs b/Content.Server/Chemistry/EntitySystems/ReagentDispenserSystem.cs index d5ec310f87..7a09d16265 100644 --- a/Content.Server/Chemistry/EntitySystems/ReagentDispenserSystem.cs +++ b/Content.Server/Chemistry/EntitySystems/ReagentDispenserSystem.cs @@ -68,7 +68,7 @@ namespace Content.Server.Chemistry.EntitySystems var inventory = GetInventory(reagentDispenser); - var state = new ReagentDispenserBoundUserInterfaceState(outputContainerInfo, inventory, reagentDispenser.Comp.DispenseAmount); + var state = new ReagentDispenserBoundUserInterfaceState(outputContainerInfo, GetNetEntity(outputContainer), inventory, reagentDispenser.Comp.DispenseAmount); _userInterfaceSystem.TrySetUiState(reagentDispenser, ReagentDispenserUiKey.Key, state); } diff --git a/Content.Shared/Chemistry/SharedReagentDispenser.cs b/Content.Shared/Chemistry/SharedReagentDispenser.cs index 22cb87dcdb..2b9c318c58 100644 --- a/Content.Shared/Chemistry/SharedReagentDispenser.cs +++ b/Content.Shared/Chemistry/SharedReagentDispenser.cs @@ -56,6 +56,8 @@ namespace Content.Shared.Chemistry public sealed class ReagentDispenserBoundUserInterfaceState : BoundUserInterfaceState { public readonly ContainerInfo? OutputContainer; + + public readonly NetEntity? OutputContainerEntity; /// /// A list of the reagents which this dispenser can dispense. /// @@ -63,9 +65,10 @@ namespace Content.Shared.Chemistry public readonly ReagentDispenserDispenseAmount SelectedDispenseAmount; - public ReagentDispenserBoundUserInterfaceState(ContainerInfo? outputContainer, List>> inventory, ReagentDispenserDispenseAmount selectedDispenseAmount) + public ReagentDispenserBoundUserInterfaceState(ContainerInfo? outputContainer, NetEntity? outputContainerEntity, List>> inventory, ReagentDispenserDispenseAmount selectedDispenseAmount) { OutputContainer = outputContainer; + OutputContainerEntity = outputContainerEntity; Inventory = inventory; SelectedDispenseAmount = selectedDispenseAmount; }