using System; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Components.UserInterface; using Robust.Shared.IoC; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; namespace Content.Shared.GameObjects.Components.Cargo { public class SharedCargoConsoleComponent : Component { #pragma warning disable CS0649 [Dependency] protected IPrototypeManager _prototypeManager; #pragma warning restore public sealed override string Name => "CargoConsole"; /// /// Sends away or requests shuttle /// [Serializable, NetSerializable] public class CargoConsoleShuttleMessage : BoundUserInterfaceMessage { public CargoConsoleShuttleMessage() { } } /// /// Add order to database. /// [Serializable, NetSerializable] public class CargoConsoleAddOrderMessage : BoundUserInterfaceMessage { public string Requester; public string Reason; public string ProductId; public int Amount; public CargoConsoleAddOrderMessage(string requester, string reason, string productId, int amount) { Requester = requester; Reason = reason; ProductId = productId; Amount = amount; } } /// /// Remove order from database. /// [Serializable, NetSerializable] public class CargoConsoleRemoveOrderMessage : BoundUserInterfaceMessage { public int OrderNumber; public CargoConsoleRemoveOrderMessage(int orderNumber) { OrderNumber = orderNumber; } } /// /// Set order in database as approved. /// [Serializable, NetSerializable] public class CargoConsoleApproveOrderMessage : BoundUserInterfaceMessage { public int OrderNumber; public CargoConsoleApproveOrderMessage(int orderNumber) { OrderNumber = orderNumber; } } [NetSerializable, Serializable] public enum CargoConsoleUiKey { Key } } [NetSerializable, Serializable] public class CargoConsoleInterfaceState : BoundUserInterfaceState { public readonly bool RequestOnly; public readonly int BankId; public readonly string BankName; public readonly int BankBalance; public readonly (int CurrentCapacity, int MaxCapacity) ShuttleCapacity; public CargoConsoleInterfaceState(bool requestOnly, int bankId, string bankName, int bankBalance, (int CurrentCapacity, int MaxCapacity) shuttleCapacity) { RequestOnly = requestOnly; BankId = bankId; BankName = bankName; BankBalance = bankBalance; ShuttleCapacity = shuttleCapacity; } } }