/// <summary>
/// Gives click behavior for transferring to/from other reagent containers.
/// </summary>
-[RegisterComponent, NetworkedComponent]
+[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
public sealed partial class SolutionTransferComponent : Component
{
/// <summary>
/// </summary>
[DataField("transferAmount")]
[ViewVariables(VVAccess.ReadWrite)]
+ [AutoNetworkedField]
public FixedPoint2 TransferAmount { get; set; } = FixedPoint2.New(5);
/// <summary>
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)
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.