# SPDX-FileCopyrightText: 2023 Jeff <velcroboy333@hotmail.com>
# SPDX-FileCopyrightText: 2023 OctoRocket <88291550+OctoRocket@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Vordenburg <114301317+Vordenburg@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Whisper <121047731+QuietlyWhisper@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 freeman2651 <104049107+freeman2651@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 potato1234_x <79580518+potato1234x@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 AJCM-git <60196617+AJCM-git@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Aiden <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2024 Alzore <140123969+Blackern5000@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Brandon Hu <103440971+Brandon-Huu@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 CaasGit <87243814+CaasGit@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Cojoke <83733158+Cojoke-dot@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 DrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ed <96445749+TheShuEd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Emisse <99158783+Emisse@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 EmoGarbage404 <retron404@gmail.com>
# SPDX-FileCopyrightText: 2024 Eoin Mcloughlin <helloworld@eoinrul.es>
# SPDX-FileCopyrightText: 2024 Errant <35878406+Errant-4@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Flareguy <78941145+Flareguy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Hrosts <35345601+Hrosts@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ian <ignaz.k@live.de>
# SPDX-FileCopyrightText: 2024 Ilya246 <57039557+Ilya246@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Joel Zimmerman <JoelZimmerman@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 JustCone <141039037+JustCone14@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2024 Killerqu00 <47712032+Killerqu00@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ko4ergaPunk <62609550+Ko4ergaPunk@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kukutis96513 <146854220+Kukutis96513@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Lye <128915833+Lyroth001@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 MerrytheManokit <167581110+MerrytheManokit@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Mervill <mervills.email@gmail.com>
# SPDX-FileCopyrightText: 2024 Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 MureixloI <132683811+MureixloI@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 NakataRin <45946146+NakataRin@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 OrangeMoronage9622 <whyteterry0092@gmail.com>
# SPDX-FileCopyrightText: 2024 PJBot <pieterjan.briers+bot@gmail.com>
# SPDX-FileCopyrightText: 2024 Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
# SPDX-FileCopyrightText: 2024 Plykiya <58439124+Plykiya@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Preston Smith <92108534+thetolbean@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Psychpsyo <60073468+Psychpsyo@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Repo <47093363+Titian3@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 RiceMar1244 <138547931+RiceMar1244@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Simon <63975668+Simyon264@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Stalen <33173619+stalengd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 TakoDragon <69509841+BackeTako@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Thomas <87614336+Aeshus@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 TsjipTsjip <19798667+TsjipTsjip@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ubaser <134914314+UbaserB@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Unkn0wn_Gh0st <shadowstalkermll@gmail.com>
# SPDX-FileCopyrightText: 2024 Vasilis <vasilis@pikachu.systems>
# SPDX-FileCopyrightText: 2024 Vigers Ray <60344369+VigersRay@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 beck-thompson <107373427+beck-thompson@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deathride58 <deathride58@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 degradka <69397649+degradka@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 dffdff2423 <dffdff2423@gmail.com>
# SPDX-FileCopyrightText: 2024 eoineoineoin <github@eoinrul.es>
# SPDX-FileCopyrightText: 2024 foboscheshir <156405958+foboscheshir@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 lzk <124214523+lzk228@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <comedian_vs_clown@hotmail.com>
# SPDX-FileCopyrightText: 2024 nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 plykiya <plykiya@protonmail.com>
# SPDX-FileCopyrightText: 2024 saintmuntzer <47153094+saintmuntzer@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 shamp <140359015+shampunj@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 slarticodefast <161409025+slarticodefast@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 strO0pwafel <153459934+strO0pwafel@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 stroopwafel <j.o.luijkx@student.tudelft.nl>
# SPDX-FileCopyrightText: 2024 themias <89101928+themias@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 to4no_fix <156101927+chavonadelal@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 voidnull000 <18663194+voidnull000@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Aineias1 <dmitri.s.kiselev@gmail.com>
# SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Milon <plmilonpl@gmail.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <linebarrelerenthusiast@gmail.com>
# SPDX-FileCopyrightText: 2025 username <113782077+whateverusername0@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 whateverusername0 <whateveremail>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  parent: BaseItem
  id: BaseVendingMachineRestock
  abstract: true
  name: vending machine restock box
  description: A box for restocking vending machines with corporate goodies.
  components:
  - type: VendingMachineRestock
  - type: Sprite
    sprite: Objects/Specific/Service/vending_machine_restock.rsi
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
  - type: MeleeWeapon
    damage:
      types:
        Blunt: 5
    soundHit:
      path: /Audio/Weapons/genhit2.ogg
    soundSwing:
      path: /Audio/Weapons/punchmiss.ogg
  - type: Item
    size: Normal
  - type: Damageable
    damageContainer: Inorganic
    damageModifierSet: Metallic
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 40
      behaviors:
        - !type:DoActsBehavior
          acts: [ "Destruction" ]
    - trigger:
        !type:DamageTrigger
        damage: 20
      behaviors:
      - !type:PlaySoundBehavior
        sound:
          collection: MetalBreak
      - !type:DumpRestockInventory
      - !type:DoActsBehavior
        acts: [ "Destruction" ]

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockBooze
  name: Booze-O-Mat restock box
  description: Slot into your Booze-O-Mat to start the party! Not for sale to passengers below the legal age.
  components:
  - type: VendingMachineRestock
    canRestock:
    - BoozeOMatInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_booze

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockChang
  name: Mr. Chang's restock box
  description: A box covered in white labels with bold red Chinese characters, ready to be loaded into the nearest Mr. Chang's vending machine.
  components:
  - type: VendingMachineRestock
    canRestock:
    - ChangInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_chinese

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockChefvend
  name: ChefVend restock box
  description: Refill the ChefVend. Just don't break any more of the eggs.
  components:
  - type: VendingMachineRestock
    canRestock:
    - ChefvendInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_chef

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockCondimentStation
  name: condiment station restock box
  description: Refill the condiment station. Mmmm, cold sauce.
  components:
  - type: VendingMachineRestock
    canRestock:
    - CondimentInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_condiment

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockClothes
  name: wardrobe restock box
  description: It's time to step up your fashion! Place inside any clothes vendor restock slot to begin.
  components:
  - type: VendingMachineRestock
    canRestock:
    - ClothesMateInventory
    - AtmosDrobeInventory
    - BarDrobeInventory
    - CargoDrobeInventory
    - ChefDrobeInventory
    - ChemDrobeInventory
    - DetDrobeInventory
    - EngiDrobeInventory
    - GeneDrobeInventory
    - HyDrobeInventory
    - JaniDrobeInventory
    - LawDrobeInventory
    - MediDrobeInventory
    - MiningDrobeInventory
    - RoboDrobeInventory
    - SciDrobeInventory
    - SecDrobeInventory
    - ViroDrobeInventory
    - WinterDrobeInventory
    - CuraDrobeInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_clothes

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockCostumes
  name: AutoDrobe restock box
  description: A panoply of NanoTrasen employees are prancing about a colorful theater in a tragicomedy. You can join them too! Load this into your nearest AutoDrobe vending machine.
  components:
  - type: VendingMachineRestock
    canRestock:
    - AutoDrobeInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_costume

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockDinnerware
  name: Plasteel Chef's restock box
  description: It's never raw in this kitchen! Drop into the restock slot on the Plasteel Chef to begin.
  components:
  - type: VendingMachineRestock
    canRestock:
    - DinnerwareInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_dinner

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockDiscountDans
  name: Discount Dan's restock box
  description: A box full of salt and starch. Why suffer Quality when you can have Quantity? Discount Dan's!
  components:
  - type: VendingMachineRestock
    canRestock:
    - DiscountDansInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_discount

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockDonut
  name: Robust Donuts restock box
  description: A box full of toroidal bundles of fried dough for restocking a vending machine. Use only as directed by Robust Industries, LLC.
  components:
  - type: VendingMachineRestock
    canRestock:
    - DonutInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_donuts

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockEngineering
  name: EngiVend restock box
  description: Only to be used by certified professionals.
  components:
  - type: VendingMachineRestock
    canRestock:
    - EngiVendInventory
    - YouToolInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_engi

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockGames
  name: Good Clean Fun restock box
  description: It's time to roll for initiative, dice dragons! Load up at the Good Clean Fun vending machine!
  components:
  - type: VendingMachineRestock
    canRestock:
    - GoodCleanFunInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_games

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockGetmoreChocolateCorp
  name: GetMore Chocolate restock box
  description: A box loaded with the finest ersatz cacao. Only to be used in official Getmore Chocolate vending machines.
  components:
  - type: VendingMachineRestock
    canRestock:
    - GetmoreChocolateCorpInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_snack

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockHotDrinks
  name: Solar's Best restock box
  description: Toasty! For use in Solar's Best Hot Drinks or other affiliate vending machines.
  components:
  - type: VendingMachineRestock
    canRestock:
    - HotDrinksMachineInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_joe

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockMedical
  name: NanoMed restock box
  description: Slot into your department's NanoMed or NanoMedPlus to dispense. Handle with care.
  components:
  - type: VendingMachineRestock
    canRestock:
    - NanoMedInventory
    - NanoMedPlusInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_medical

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockNutriMax
  name: NutriMax restock box
  description: We'll make your thumbs green with our tools. Let's get to harvesting! Load into a NutriMax vending machine.
  components:
  - type: VendingMachineRestock
    canRestock:
    - NutriMaxInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_plant

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockPTech
  name: PTech restock box
  description: All the bureaucracy you can handle, and more! Load into the PTech vending machine to get started.
  components:
  - type: VendingMachineRestock
    canRestock:
    - PTechInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_ptech

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockRobustSoftdrinks
  name: beverage restock box
  description: A cold, clunky container of colliding chilly cylinders. Use only as directed by Robust Industries, LLC.
  components:
  - type: VendingMachineRestock
    canRestock:
    - RobustSoftdrinksInventory
    - BodaInventory
    - PwrGameInventory
    - ShamblersJuiceInventory
    - StarkistInventory
    - SpaceUpInventory
    - SodaInventory
    - DrGibbInventory
    - SmiteInventory 
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_cola

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockSecTech
  name: SecTech restock box
  description: "Communists beware: the reinforcements have arrived! A label reads SECURITY PERSONNEL ONLY."
  components:
  - type: VendingMachineRestock
    canRestock:
    - SecTechInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_sec

- type: entity
  abstract: true # DeltaV: Salvage vendor doesn't have stock anymore
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockSalvageEquipment
  name: Salvage Vendor restock box
  description: Strike the earth ere the space carp nip your behind! Slam into a salvage vendor to begin.
  components:
  - type: VendingMachineRestock
    canRestock:
    - SalvageEquipmentInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_salvage

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockSeeds
  name: MegaSeed restock box
  description: A label says they're heirloom seeds, passed down from our ancestors. Pack it into the MegaSeed Servitor!
  components:
  - type: VendingMachineRestock
    canRestock:
    - MegaSeedServitorInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_plant

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockSmokes
  name: ShadyCigs restock box
  description: It's hard to see anything under all the Surgeon General warnings, but it mentions loading it into a vending machine.
  components:
  - type: VendingMachineRestock
    canRestock:
    - CigaretteMachineInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_smoke

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockTankDispenser
  name: tank dispenser restock box
  description: Capable of replacing tanks in a gas tank dispenser. Handle with care.
  components:
  - type: VendingMachineRestock
    canRestock:
    - TankDispenserEVAInventory
    - TankDispenserEngineeringInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_tanks

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockVendomat
  name: Vendomat restock box
  description: A box full of parts for various machinery. Load it into a Vendomat to begin.
  components:
  - type: VendingMachineRestock
    canRestock:
    - VendomatInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_parts

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockRobotics
  name: Robotech Deluxe restock box
  description: A box full of tools for creating borgs. Load it into a Robotech Deluxe to begin.
  components:
  - type: VendingMachineRestock
    canRestock:
    - RoboticsInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_robotics

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockHappyHonk
  name: Happy Honk restock box
  description: Place this box full of fun into the restock slot on the Happy Honk Dispenser to begin.
  components:
  - type: VendingMachineRestock
    canRestock:
    - HappyHonkDispenserInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_honk

- type: entity
  parent: BaseVendingMachineRestock
  id: VendingMachineRestockChemVend
  name: ChemVend restock box
  description: A box filled with chemicals and covered in dangerous-looking NFPA diamonds. Load it into a ChemVend to begin.
  components:
  - type: VendingMachineRestock
    canRestock:
    - ChemVendInventory
  - type: Sprite
    layers:
    - state: base
    - state: green_bit
      shader: unshaded
    - state: refill_medical