using Content.Shared.Actions;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
namespace Content.Shared.VendingMachines.Components;
[RegisterComponent, NetworkedComponent]
public sealed partial class VendingMachineComponent : Component
{
///
/// PrototypeID for the vending machine's inventory, see
///
[DataField("pack", required: true)]
public ProtoId PackPrototypeId;
[DataField]
public Dictionary Inventory = new();
[DataField]
public Dictionary EmaggedInventory = new();
[DataField]
public Dictionary ContrabandInventory = new();
///
/// If true then unlocks the
///
[DataField]
public bool Contraband;
[DataField]
public bool Broken;
///
/// The quality of the stock in the vending machine on spawn.
/// Represents the percentage chance (0.0f = 0%, 1.0f = 100%) each set of items in the machine is fully-stocked.
/// If not fully stocked, the stock will have a random value between 0 (inclusive) and max stock (exclusive).
///
[DataField]
public float InitialStockQuality = 1.0f;
///
/// Audio entity used during restock in case the doafter gets canceled.
///
[DataField]
public EntityUid? RestockStream;
}
public sealed partial class VendingMachineSelfDispenseEvent : InstantActionEvent;