using Robust.Shared.Map;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
namespace Content.Shared.Cargo.Components;
///
/// Present on cargo shuttles to provide metadata such as preventing spam calling.
///
[RegisterComponent, Access(typeof(SharedCargoSystem))]
public sealed class CargoShuttleComponent : Component
{
[ViewVariables(VVAccess.ReadWrite), DataField("nextCall")]
public TimeSpan? NextCall;
[ViewVariables(VVAccess.ReadWrite), DataField("cooldown")]
public float Cooldown = 30f;
[ViewVariables]
public bool CanRecall;
///
/// The shuttle's assigned coordinates on the cargo map.
///
[ViewVariables]
public EntityCoordinates Coordinates;
///
/// The assigned station for this cargo shuttle.
///
[DataField("station")]
public EntityUid? Station;
///
/// The paper-type prototype to spawn with the order information.
///
[DataField("printerOutput", customTypeSerializer: typeof(PrototypeIdSerializer))]
public string PrinterOutput = "PaperCargoInvoice";
}