- type: entity
  id: SLVendingMachine
  parent: BaseMachinePowered
  name: vending machine
  description: Just add capitalism!
  abstract: true
  components:
  - type: Sprite
    sprite: _Starlight/Structures/Machines/VendingMachines/plushiemat.rsi
    snapCardinals: true
    layers:
    - state: "off"
      map: ["enum.VendingMachineVisualLayers.Base"]
    - state: normal-unshaded
      map: ["enum.VendingMachineVisualLayers.BaseUnshaded"]
      shader: unshaded
  - type: StationAiWhitelist
  - type: AmbientOnPowered
  - type: AmbientSound
    volume: -9
    range: 3
    enabled: false
    sound:
      path: /Audio/Ambience/Objects/vending_machine_hum.ogg
  - type: Physics
    bodyType: Static
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          !type:PhysShapeAabb
          bounds: "-0.3,-0.16,0.3,0.40"
        mask:
        - MachineMask
        layer:
        - MachineLayer
        density: 190
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 100
      behaviors:
      - !type:DoActsBehavior
        acts: ["Breakage"]
    - trigger:
        !type:DamageTrigger
        damage: 200
      behaviors:
      - !type:SpawnEntitiesBehavior
        spawn:
          SheetSteel1:
            min: 1
            max: 1
      - !type:DoActsBehavior
        acts: [ "Destruction" ]
      - !type:PlaySoundBehavior
        sound:
          collection: MetalGlassBreak
  - type: Repairable
    doAfterDelay: 8
  - type: UserInterface
    interfaces:
        enum.StoreUiKey.Key:
          type: StoreBoundUserInterface
  - type: ActivatableUI
    key: enum.StoreUiKey.Key
  - type: WiresPanel
  - type: Wires
   #boardName: wires-board-name-vendingmachine
    layoutId: Vending
  - type: Anchorable
  - type: Electrified
    enabled: false
    usesApcPower: true
  - type: PointLight
    enabled: false
    castShadows: false
    radius: 1.5
  - type: LitOnPowered
  - type: ApcPowerReceiver
    powerLoad: 200
  - type: StaticPrice
    price: 100
  - type: Appearance
  - type: WiresVisuals
  - type: Store
    name: store-preset-name-spellbook
    categories: []
    currencyWhitelist:
    - NTCredit

- type: entity
  parent: SLVendingMachine
  id: SLVendingMachineHugDispenser
  name: hug dispenser
  components:
  - type: Sprite
    sprite: _Starlight/Structures/Machines/VendingMachines/plushiemat.rsi
  - type: Store
    name: vendor-hug-dispenser
    categories:
    - SLPlushies
    - SLSpecies
    - SLCrew

- type: entity
  parent: SLVendingMachine
  id: SLVendingMachineFashion
  name: Fashion-o-Mat
  description: Happiness should be expensive.
  components:
  - type: Sprite
    sprite: _Starlight/Structures/Machines/VendingMachines/fashionmat.rsi
  - type: Store
    grid: true
    name: vendor-fashion-o-mat
    categories:
    - SLFashionSkirt
    - SLFashionSuit
    - SLFashionHead
    - SLFashionOther

- type: entity
  parent: SLVendingMachine
  id: SLVendingMachineMedical
  name: medical dispenser
  components:
  - type: AccessReader
    access: [["Medical"]]
  - type: Sprite
    sprite: _Starlight/Structures/Machines/VendingMachines/medical.rsi
  - type: Store
    name: vendor-medical-dispenser
    categories:
    - SLChemistry
    - SLMedical
    - SLSurgery

- type: entity
  parent: SLVendingMachine
  id: SLVendingMachineEngi
  name: engi dispenser
  components:
  - type: AccessReader
    access: [["Engineering"]]
  - type: Sprite
    sprite: _Starlight/Structures/Machines/VendingMachines/engi.rsi
  - type: Store
    name: vendor-engineering-dispenser
    categories:
    - SLEnginery

- type: entity
  parent: SLVendingMachine
  id: VendingMachineClown
  name: HohohonkersVend
  description: Get your honk fix here! Surprise the station with HohohonkersVend — the ultimate machine for hilarious pranks. Hack it, and you'll unlock something special!
  components:
  - type: AccessReader
    access: [["Theatre"]]
  - type: Store
    name: vendor-clown-dispenser
    categories:
    - SLClown
  - type: Sprite
    sprite: _Starlight/Structures/Machines/VendingMachines/hohohonkers.rsi

- type: entity
  parent: SLVendingMachine
  id: SLVendingMachineSecurity
  name: security dispenser
  components:
  - type: AccessReader
    access: [["Security"], ["Cadet"]]
  - type: Sprite
    sprite: _Starlight/Structures/Machines/VendingMachines/security.rsi
  - type: Store
    name: vendor-security-dispenser
    categories:
    - SLSecurity
    - SLBrigmedic

- type: entity
  parent: SLVendingMachine
  id: SLVendingMachineSalvage
  name: salvage ticket machine
  components:
  - type: AccessReader
    access: [["Salvage"]]
  - type: Sprite
    sprite: _Starlight/Structures/Machines/VendingMachines/salvage.rsi
  - type: Store
    name: vendor-salvage-ticket-machine
    categories:
    - SalvageEquipment
    - SalvageWeapons
    - SalvageConsumeables
    - SalvageMercenaryEquipment
    - SalvageCybernetics
    currencyWhitelist:
    - SalvageTicket

- type: entity
  parent: SLVendingMachine
  id: SLVendingMachineMining
  name: mining ticket machine
  components:
    - type: AccessReader
      access: [["Mining"]]
    - type: Sprite
      sprite: _Starlight/Structures/Machines/VendingMachines/mining.rsi
    - type: Store
      name: vendor-mining-ticket-machine
      categories:
        - MiningEquipment
        - MiningConsumeables
      currencyWhitelist:
        - SalvageTicket # Same currency as salvage vendor to promote sharing

- type: entity
  parent: VendingMachine
  id: VendingMachineAbductorDispenser
  name: alien dispenser
  description: Dispenses something weird.
  components:
    - type: VendingMachine
      pack: AbductorGlandInventory
      offState: icon
      brokenState: icon
      showPrices: false
      normalState: icon
      denyState: icon
      ejectDelay: 2
      forceRandom: RandomOrganDubious
    - type: Sprite
      sprite: _Starlight/Structures/abductor_dispencer.rsi
      layers:
      - state: "icon"
        map: ["enum.VendingMachineVisualLayers.Base"]
      - state: "unshaded"
        map: ["enum.VendingMachineVisualLayers.BaseUnshaded"]
    - type: WirelessNetworkConnection
      range: 200
    - type: AbductorDispencer

- type: entity
  parent: VendingMachine
  id: VendingMachineDonk
  name: Donk on the Go
  description: Hot and ready when you're on the run! Donk Pockets- It's food, legally.
  components:
  - type: VendingMachine
    pack: DonkPocketsMachineInventory
    dispenseOnHitChance: 0.25
    dispenseOnHitThreshold: 2
    offState: off
    brokenState: broken
    normalState: normal-unshaded
    ejectState: eject-unshaded
    denyState: deny-unshaded
    ejectDelay: 2
  - type: Machine # Starlight-edit: Vending Machine boards
    board: VendingMachineDonkCircuitboard # Starlight-edit: Vending Machine boards
  - type: DatasetVocalizer
    dataset: DonkPocketMachineAds
  - type: SpeakOnUIClosed
    pack: DonkPocketMachineGoodbyes
  - type: Sprite
    sprite: _Starlight/Structures/Machines/VendingMachines/donk.rsi
    layers:
    - state: "off"
      map: ["enum.VendingMachineVisualLayers.Base"]
    - state: "off"
      map: ["enum.VendingMachineVisualLayers.BaseUnshaded"]
      shader: unshaded
    - state: panel
      map: ["enum.WiresVisualLayers.MaintenancePanel"]
  - type: PointLight
    radius: 1.5
    energy: 2.0
    color: "#ad7c4b"

- type: entity
  parent: VendingMachine
  id: VendingMachineIceCream
  name: I Scream Ice-Cream
  description: A vending machine full of delicious ice cream. ScaryCorp assures that you don't actually have to scream anything.
  components:
  - type: VendingMachine
    pack: IceCreamInventory
    dispenseOnHitChance: 0.25
    dispenseOnHitThreshold: 2
    offState: off
    brokenState: broken
    normalState: normal-unshaded
    ejectState: eject-unshaded
    denyState: deny-unshaded
  - type: Machine # Starlight-edit: Vending Machine boards
    board: VendingMachineIceCreamCircuitboard # Starlight-edit: Vending Machine boards
  - type: DatasetVocalizer
    dataset: IceCreamAds
  - type: SpeakOnUIClosed
    pack: IceCreamGoodbyes
  - type: Sprite
    sprite: _Starlight/Structures/Machines/VendingMachines/icecream.rsi
    layers:
    - state: "off"
      map: ["enum.VendingMachineVisualLayers.Base"]
    - state: "off"
      map: ["enum.VendingMachineVisualLayers.BaseUnshaded"]
      shader: unshaded
    - state: panel
      map: ["enum.WiresVisualLayers.MaintenancePanel"]
  - type: PointLight
    radius: 1.5
    energy: 1.6
    color: "#aee8f5"

# Empty
- type: entity
  parent: VendingMachineCondiments
  id: VendingMachineCondimentsEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineAmmo
  id: VendingMachineAmmoEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineBooze
  id: VendingMachineBoozeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineBoozeSyndicate
  id: VendingMachineBoozeSyndicateEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineCart
  id: VendingMachineCartEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineChefvend
  id: VendingMachineChefvendEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineCigs
  id: VendingMachineCigsEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineClothing
  id: VendingMachineClothingEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineWinter
  id: VendingMachineWinterEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineCoffee
  id: VendingMachineCoffeeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineCola
  id: VendingMachineColaEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineColaBlack
  id: VendingMachineColaBlackEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineColaRed
  id: VendingMachineColaRedEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineSpaceUp
  id: VendingMachineSpaceUpEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineSoda
  id: VendingMachineSodaEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineStarkist
  id: VendingMachineStarkistEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineShamblersJuice
  id: VendingMachineShamblersJuiceEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachinePwrGame
  id: VendingMachinePwrGameEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineDrGibb
  id: VendingMachineDrGibbEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineSmite
  id: VendingMachineSmiteEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineDinnerware
  id: VendingMachineDinnerwareEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineMagivend
  id: VendingMachineMagivendEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineDiscount
  id: VendingMachineDiscountEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineEngivend
  id: VendingMachineEngivendEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineMedicalBase
  id: VendingMachineMedicalBaseEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineMedical
  id: VendingMachineMedicalEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineNutri
  id: VendingMachineNutriEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineSec
  id: VendingMachineSecEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineSeedsUnlocked
  id: VendingMachineSeedsUnlockedEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineSeeds
  id: VendingMachineSeedsEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineSnack
  id: VendingMachineSnackEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineSustenance
  id: VendingMachineSustenanceEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineSnackBlue
  id: VendingMachineSnackBlueEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineSnackOrange
  id: VendingMachineSnackOrangeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineSnackGreen
  id: VendingMachineSnackGreenEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineSnackTeal
  id: VendingMachineSnackTealEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineSovietSoda
  id: VendingMachineSovietSodaEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineTheater
  id: VendingMachineTheaterEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineVendomat
  id: VendingMachineVendomatEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineRobotics
  id: VendingMachineRoboticsEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineYouTool
  id: VendingMachineYouToolEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineGames
  id: VendingMachineGamesEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineChang
  id: VendingMachineChangEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineSalvage
  id: VendingMachineSalvageEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineDonut
  id: VendingMachineDonutEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineHydrobe
  id: VendingMachineHydrobeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineLawDrobe
  id: VendingMachineLawDrobeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineSecDrobe
  id: VendingMachineSecDrobeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingBarDrobe
  id: VendingBarDrobeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineChapel
  id: VendingMachineChapelEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineCargoDrobe
  id: VendingMachineCargoDrobeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineMediDrobe
  id: VendingMachineMediDrobeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineChemDrobe
  id: VendingMachineChemDrobeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineCuraDrobe
  id: VendingMachineCuraDrobeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineAtmosDrobe
  id: VendingMachineAtmosDrobeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineEngiDrobe
  id: VendingMachineEngiDrobeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineChefDrobe
  id: VendingMachineChefDrobeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineDetDrobe
  id: VendingMachineDetDrobeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineJaniDrobe
  id: VendingMachineJaniDrobeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineSciDrobe
  id: VendingMachineSciDrobeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineSyndieDrobe
  id: VendingMachineSyndieDrobeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineRoboDrobe
  id: VendingMachineRoboDrobeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineGeneDrobe
  id: VendingMachineGeneDrobeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineViroDrobe
  id: VendingMachineViroDrobeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineCentDrobe
  id: VendingMachineCentDrobeEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineHappyHonk
  id: VendingMachineHappyHonkEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachinePride
  id: VendingMachinePrideEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineTankDispenserEVA
  id: VendingMachineTankDispenserEVAEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineTankDispenserEngineering
  id: VendingMachineTankDispenserEngineeringEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineChemicals
  id: VendingMachineChemicalsEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineChemicalsSyndicate
  id: VendingMachineChemicalsSyndicateEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineWallMedicalCivilian
  id: VendingMachineWallMedicalCivilianEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineWallMedical
  id: VendingMachineWallMedicalEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineDonk
  id: VendingMachineDonkEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine

- type: entity
  parent: VendingMachineIceCream
  id: VendingMachineIceCreamEmpty
  suffix: Empty
  components:
    - type: EmptyVendingMachine
