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 <Winkarst@users.noreply.github.com>
This commit is contained in:
Winkarst-cpu
2024-07-10 13:32:30 +03:00
committed by GitHub
parent 8aecd663f8
commit ee59ae91ec
2 changed files with 12 additions and 4 deletions

View 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>

View 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.