From ee59ae91ec8282a11a7b7fbf9dd85cc07b271721 Mon Sep 17 00:00:00 2001 From: Winkarst-cpu <74284083+Winkarst-cpu@users.noreply.github.com> Date: Wed, 10 Jul 2024 13:32:30 +0300 Subject: [PATCH] Custom solution transfer volume popup and item status panel fix (#29852) * Fix for custom solution transfer volume * Dirty call to prevent issues * Another fix, git issue --------- Co-authored-by: Winkarst-cpu --- .../Components/SolutionTransferComponent.cs | 3 ++- .../EntitySystems/SolutionTransferSystem.cs | 13 ++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Content.Shared/Chemistry/Components/SolutionTransferComponent.cs b/Content.Shared/Chemistry/Components/SolutionTransferComponent.cs index b130304afc..86d8da9d3d 100644 --- a/Content.Shared/Chemistry/Components/SolutionTransferComponent.cs +++ b/Content.Shared/Chemistry/Components/SolutionTransferComponent.cs @@ -6,7 +6,7 @@ namespace Content.Shared.Chemistry.Components; /// /// Gives click behavior for transferring to/from other reagent containers. /// -[RegisterComponent, NetworkedComponent] +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class SolutionTransferComponent : Component { /// @@ -14,6 +14,7 @@ public sealed partial class SolutionTransferComponent : Component /// [DataField("transferAmount")] [ViewVariables(VVAccess.ReadWrite)] + [AutoNetworkedField] public FixedPoint2 TransferAmount { get; set; } = FixedPoint2.New(5); /// diff --git a/Content.Shared/Chemistry/EntitySystems/SolutionTransferSystem.cs b/Content.Shared/Chemistry/EntitySystems/SolutionTransferSystem.cs index 93e9765b16..3b75392508 100644 --- a/Content.Shared/Chemistry/EntitySystems/SolutionTransferSystem.cs +++ b/Content.Shared/Chemistry/EntitySystems/SolutionTransferSystem.cs @@ -38,11 +38,15 @@ public sealed class SolutionTransferSystem : EntitySystem private void OnTransferAmountSetValueMessage(Entity ent, ref TransferAmountSetValueMessage message) { - var newTransferAmount = FixedPoint2.Clamp(message.Value, ent.Comp.MinimumTransferAmount, ent.Comp.MaximumTransferAmount); - ent.Comp.TransferAmount = newTransferAmount; + var (uid, comp) = ent; + + var newTransferAmount = FixedPoint2.Clamp(message.Value, comp.MinimumTransferAmount, comp.MaximumTransferAmount); + comp.TransferAmount = newTransferAmount; if (message.Actor is { Valid: true } user) - _popup.PopupClient(Loc.GetString("comp-solution-transfer-set-amount", ("amount", newTransferAmount)), ent, user); + _popup.PopupEntity(Loc.GetString("comp-solution-transfer-set-amount", ("amount", newTransferAmount)), uid, user); + + Dirty(uid, comp); } private void AddSetTransferVerbs(Entity ent, ref GetVerbsEvent args) @@ -78,7 +82,10 @@ public sealed class SolutionTransferSystem : EntitySystem verb.Act = () => { comp.TransferAmount = amount; + _popup.PopupClient(Loc.GetString("comp-solution-transfer-set-amount", ("amount", amount)), uid, user); + + Dirty(uid, comp); }; // we want to sort by size, not alphabetically by the verb text.