# SPDX-FileCopyrightText: 2021 Acruid <shatter66@gmail.com>
# SPDX-FileCopyrightText: 2021 Galactic Chimp <GalacticChimpanzee@gmail.com>
# SPDX-FileCopyrightText: 2021 Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 Swept <sweptwastaken@protonmail.com>
# SPDX-FileCopyrightText: 2021 Ygg01 <y.laughing.man.y@gmail.com>
# SPDX-FileCopyrightText: 2021 mirrorcult <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2022 Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Jessica M <jessica@jessicamaybe.com>
# SPDX-FileCopyrightText: 2022 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2022 Rane <60792108+Elijahrane@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Vera Aguilera Puerto <gradientvera@outlook.com>
# SPDX-FileCopyrightText: 2022 rolfero <45628623+rolfero@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Psychpsyo <60073468+Psychpsyo@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Slava0135 <40753025+Slava0135@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 TemporalOroboros <TemporalOroboros@gmail.com>
# SPDX-FileCopyrightText: 2023 lzk <124214523+lzk228@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 AJCM-git <60196617+AJCM-git@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Blazeror <154933882+Blazeror@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 BombasterDS <115770678+BombasterDS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Debug <49997488+DebugOk@users.noreply.github.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 Rio <110139251+Riolume@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <comedian_vs_clown@hotmail.com>
# SPDX-FileCopyrightText: 2024 plykiya <plykiya@protonmail.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Fishbait <Fishbait@git.ml>
# SPDX-FileCopyrightText: 2025 fishbait <gnesse@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  name: spray bottle
  id: SprayBottle
  parent: BaseItem
  suffix: Empty
  description: A spray bottle with an unscrewable top.
  components:
  - type: Drink
    solution: spray
    ignoreEmpty: true
    useSound:
      path: /Audio/Effects/spray3.ogg
    transferAmount: 10
  - type: Tag
    tags:
    - Spray
    - Trash
  - type: Sprite
    sprite: Objects/Specific/Janitorial/janitorial.rsi
    state: cleaner
  - type: Item
    sprite: Objects/Specific/Janitorial/janitorial.rsi
  - type: SolutionContainerManager
    solutions:
      spray:
        maxVol: 100
  - type: RefillableSolution
    solution: spray
  - type: DrainableSolution
    solution: spray
  - type: SolutionTransfer
    canChangeTransferAmount: true
  - type: SolutionItemStatus
    solution: spray
  - type: UseDelay
  - type: Spray
    transferAmount: 10
    sprayVelocity: 2
    spraySound:
      path: /Audio/Effects/spray2.ogg
  - type: TrashOnSolutionEmpty
    solution: spray
  - type: ExaminableSolution
    solution: spray

- type: entity
  name: mega spray bottle
  id: MegaSprayBottle
  parent: SprayBottle
  suffix: Empty
  description: A huge spray bottle, capable of unrivaled janitorial power.
  components:
  - type: Sprite
    sprite: Objects/Specific/Janitorial/janitorial.rsi
    state: cleaner_large
  - type: SolutionContainerManager
    solutions:
      spray:
        maxVol: 250
  - type: Spray
    transferAmount: 15
    sprayedPrototype: BigVapor
    sprayVelocity: 3
    sprayDistance: 4.5
    spraySound:
      path: /Audio/Effects/spray2.ogg
  - type: PhysicalComposition #Goobstation - Recycle update
    materialComposition:
      Plastic: 62
      
- type: entity
  name: spray bottle
  id: SprayBottleWater
  suffix: Filled
  parent: SprayBottle
  components:
  - type: Tag
    tags:
    - Spray
  - type: SolutionContainerManager
    solutions:
      spray:
        maxVol: 100
        reagents:
        - ReagentId: Water
          Quantity: 100

- type: entity
  name: space cleaner
  description: BLAM!-brand non-foaming space cleaner!
  id: SprayBottleSpaceCleaner
  parent: SprayBottle
  suffix: ""
  components:
  - type: SolutionContainerManager
    solutions:
      spray:
        maxVol: 100
        reagents:
        - ReagentId: SpaceCleaner
          Quantity: 100
  - type: Tag
    tags:
      - Spray
      - DroneUsable # Goobstation

- type: entity
  parent: SprayBottle
  id: BorgSprayBottle
  name: internal spray jet
  suffix: Filled
  description: A pressurized vessel for spraying reagents, installed directly into a custodial cyborg. Typically filled with space cleaner for dealing with those nasty spills.
  components:
  - type: SolutionContainerManager
    solutions:
      spray:
        maxVol: 200
        reagents:
        - ReagentId: SpaceCleaner
          Quantity: 200

- type: entity
  parent: MegaSprayBottle
  id: BorgMegaSprayBottle
  name: adv. internal spray jet
  suffix: Filled
  description: An upgraded version of the integrated spray bottle, installed directly into a custodial cyborg. Typically filled with space cleaner for dealing with those nasty spills.
  components:
  - type: SolutionContainerManager
    solutions:
      spray:
        maxVol: 500
        reagents:
        - ReagentId: SpaceCleaner
          Quantity: 500

# Vapor
- type: entity
  id: Vapor
  name: "vapor"
  categories: [ HideSpawnMenu ]
  components:
  - type: SolutionContainerManager
    solutions:
      vapor:
        maxVol: 50
  - type: Vapor
    active: true
    transferAmountPercentage: 0.5
  - type: AnimationPlayer
  - type: Sprite
    sprite: Effects/chempuff.rsi
    rotation: 180
    layers:
    - state: chempuff
      map: ["enum.VaporVisualLayers.Base"]
  - type: Physics
    bodyType: Dynamic
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          !type:PhysShapeAabb
          bounds: "-0.25,-0.25,0.25,0.25"
        hard: false
        mask:
        - FullTileMask
        - Opaque
        layer:
        - ItemMask
  - type: Appearance
  - type: VaporVisuals

- type: entity
  id: BigVapor
  parent: Vapor
  categories: [ HideSpawnMenu ]
  components:
  - type: Sprite
    sprite: Effects/chempuff.rsi
    rotation: 180
    layers:
    - state: chempuff
      scale: 2, 2
      map: ["enum.VaporVisualLayers.Base"]
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          !type:PhysShapeAabb
          bounds: "-0.6,-0.6,0.6,0.6"
        hard: false
        mask:
        - FullTileMask
        - Opaque