]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Custom solution transfer volume popup and item status panel fix (#29852)
authorWinkarst-cpu <74284083+Winkarst-cpu@users.noreply.github.com>
Wed, 10 Jul 2024 10:32:30 +0000 (13:32 +0300)
committerGitHub <noreply@github.com>
Wed, 10 Jul 2024 10:32:30 +0000 (12:32 +0200)
* Fix for custom solution transfer volume

* Dirty call to prevent issues

* Another fix, git issue

---------

Co-authored-by: Winkarst-cpu <Winkarst@users.noreply.github.com>
Content.Shared/Chemistry/Components/SolutionTransferComponent.cs
Content.Shared/Chemistry/EntitySystems/SolutionTransferSystem.cs

index b130304afc8c84876d30d57d9465bd198e4495ad..86d8da9d3d9254973cd33d9199ecc91d6af55f32 100644 (file)
@@ -6,7 +6,7 @@ namespace Content.Shared.Chemistry.Components;
 /// <summary>
 ///     Gives click behavior for transferring to/from other reagent containers.
 /// </summary>
-[RegisterComponent, NetworkedComponent]
+[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
 public sealed partial class SolutionTransferComponent : Component
 {
     /// <summary>
@@ -14,6 +14,7 @@ public sealed partial class SolutionTransferComponent : Component
     /// </summary>
     [DataField("transferAmount")]
     [ViewVariables(VVAccess.ReadWrite)]
+    [AutoNetworkedField]
     public FixedPoint2 TransferAmount { get; set; } = FixedPoint2.New(5);
 
     /// <summary>
index 93e9765b1640dfc4deaf97f3b19cc55f30369907..3b753925088f8752e9c34946fa8389443db6bc48 100644 (file)
@@ -38,11 +38,15 @@ public sealed class SolutionTransferSystem : EntitySystem
 
     private void OnTransferAmountSetValueMessage(Entity<SolutionTransferComponent> 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<SolutionTransferComponent> ent, ref GetVerbsEvent<AlternativeVerb> 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.