using Content.Shared.FixedPoint; using Robust.Shared.GameStates; using Robust.Shared.Audio; // Frontier namespace Content.Shared.Chemistry.Components; /// /// Gives click behavior for transferring to/from other reagent containers. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class SolutionTransferComponent : Component { /// /// The amount of solution to be transferred from this solution when clicking on other solutions with it. /// [DataField("transferAmount")] [ViewVariables(VVAccess.ReadWrite)] [AutoNetworkedField] public FixedPoint2 TransferAmount { get; set; } = FixedPoint2.New(5); /// /// The minimum amount of solution that can be transferred at once from this solution. /// [DataField("minTransferAmount")] [ViewVariables(VVAccess.ReadWrite)] public FixedPoint2 MinimumTransferAmount { get; set; } = FixedPoint2.New(5); /// /// The maximum amount of solution that can be transferred at once from this solution. /// [DataField("maxTransferAmount")] [ViewVariables(VVAccess.ReadWrite)] public FixedPoint2 MaximumTransferAmount { get; set; } = FixedPoint2.New(100); /// /// Can this entity take reagent from reagent tanks? /// [DataField("canReceive")] [ViewVariables(VVAccess.ReadWrite)] public bool CanReceive { get; set; } = true; /// /// Can this entity give reagent to other reagent containers? /// [DataField("canSend")] [ViewVariables(VVAccess.ReadWrite)] public bool CanSend { get; set; } = true; /// /// Whether you're allowed to change the transfer amount. /// [DataField("canChangeTransferAmount")] [ViewVariables(VVAccess.ReadWrite)] public bool CanChangeTransferAmount { get; set; } = false; /// /// Frontier - Play a sound when transfering liquid /// [DataField("playTransferSound")] [ViewVariables(VVAccess.ReadWrite)] public bool PlayTransferSound { get; set; } = false; /// /// Frontier - What sound to play when transfering liquid /// [DataField("transferSound")] public SoundSpecifier TransferSound = new SoundPathSpecifier("/Audio/_NF/Effects/splat.ogg"); }