diff --git a/Content.Server/Cargo/Systems/CargoSystem.Orders.cs b/Content.Server/Cargo/Systems/CargoSystem.Orders.cs index 4a150c3c1a..c0d598a5d0 100644 --- a/Content.Server/Cargo/Systems/CargoSystem.Orders.cs +++ b/Content.Server/Cargo/Systems/CargoSystem.Orders.cs @@ -5,9 +5,11 @@ using Content.Server.Paper; using Content.Server.Station.Components; using Content.Shared.Cargo; using Content.Shared.Cargo.BUI; +using Content.Shared.Cargo.Components; using Content.Shared.Cargo.Events; using Content.Shared.Cargo.Prototypes; using Content.Shared.Database; +using Content.Shared.Interaction; using Robust.Shared.Map; using Robust.Shared.Player; using Robust.Shared.Prototypes; @@ -35,9 +37,30 @@ namespace Content.Server.Cargo.Systems SubscribeLocalEvent(OnApproveOrderMessage); SubscribeLocalEvent(OnOrderUIOpened); SubscribeLocalEvent(OnInit); + SubscribeLocalEvent(OnInteractUsing); Reset(); } + private void OnInteractUsing(EntityUid uid, CargoOrderConsoleComponent component, ref InteractUsingEvent args) + { + if (!HasComp(args.Used)) + return; + + var price = _pricing.GetPrice(args.Used); + + if (price == 0) + return; + + var stationUid = _station.GetOwningStation(args.Used); + + if (!TryComp(stationUid, out StationBankAccountComponent? bank)) + return; + + _audio.PlayPvs(component.ConfirmSound, uid); + UpdateBankAccount(stationUid.Value, bank, (int) price); + QueueDel(args.Used); + } + private void OnInit(EntityUid uid, CargoOrderConsoleComponent orderConsole, ComponentInit args) { var station = _station.GetOwningStation(uid); diff --git a/Content.Shared/Cargo/Components/CashComponent.cs b/Content.Shared/Cargo/Components/CashComponent.cs new file mode 100644 index 0000000000..10a47ff803 --- /dev/null +++ b/Content.Shared/Cargo/Components/CashComponent.cs @@ -0,0 +1,12 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Cargo.Components; + +/// +/// Can be inserted into a to increase the station's bank account. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class CashComponent : Component +{ + +} diff --git a/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml b/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml index 27e19bc3bd..f402c1abef 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/space_cash.yml @@ -4,6 +4,7 @@ name: spesos description: You gotta have money. components: + - type: Cash - type: Item shape: - 0,0,1,0