- type: entity
  parent: BaseItem
  name: mop
  id: MopItem
  description: A mop that can't be stopped, viscera cleanup detail awaits.
  components:
  - type: Sprite
    sprite: Objects/Specific/Janitorial/mop.rsi
    state: mop
  - type: Item
    size: 10
    sprite: Objects/Specific/Janitorial/mop.rsi
  - type: Mop
  - type: SolutionContainer
    maxVol: 10
  - type: LoopingSound

- type: entity
  name: mop bucket
  id: MopBucket
  description: Holds water and the tears of the janitor.
  components:
  - type: Clickable
  - type: Sprite
    sprite: Objects/Specific/Janitorial/janitorial.rsi
    layers:
    - state: mopbucket
    - state: mopbucket_water
    drawdepth: Objects
  - type: InteractionOutline
  - type: Bucket
  - type: LoopingSound
  - type: SolutionContainer
    maxVol: 500
  - type: Physics
    mass: 5
    anchored: false
    shapes:
    - !type:PhysShapeAabb
      bounds: "-0.40,-0.25,0.25,0.25"
      mask:
      - Impassable
      - Opaque
      layer:
      - Opaque
  - type: Spillable
  - type: Pullable

- type: entity
  parent: BaseItem
  name: bucket
  id: Bucket
  description: It's a boring old bucket.
  components:
  - type: Clickable
  - type: Sprite
    sprite: Objects/Specific/Janitorial/janitorial.rsi
    layers:
    - state: bucket
    - state: bucket_water
    drawdepth: Objects
  - type: Bucket
  - type: LoopingSound
  - type: SolutionContainer
    maxVol: 500
  - type: Physics
    mass: 5
    anchored: false
    shapes:
    - !type:PhysShapeAabb
      bounds: "-0.25,-0.25,0.25,0.25"
      mask:
      - Impassable
  - type: Spillable

- type: entity
  name: wet floor sign
  id: WetFloorSign
  parent: BaseItem
  description: Caution! Wet Floor!
  components:
  - type: Sprite
    sprite: Objects/Specific/Janitorial/wet_floor_sign.rsi
    state: caution
  - type: Item
    sprite: Objects/Specific/Janitorial/wet_floor_sign.rsi

- type: entity
  name: soap
  id: Soap
  parent: BaseItem
  description: A cheap bar of soap. Doesn't smell.
  components:
  - type: Sprite
    sprite: Objects/Specific/Janitorial/soap.rsi
    state: soap
  - type: Item
    sprite: Objects/Specific/Janitorial/soap.rsi
  - type: Slippery
    paralyzeTime: 2.5
  - type: Physics
    shapes:
    - !type:PhysShapeAabb
      bounds: "-0.3,-0.4,0.3,0.4"
      layer:
      - MobImpassable

- type: entity
  name: soap
  id: SoapNT
  parent: Soap
  description: A Nanotrasen brand bar of soap. Smells of phoron.
  components:
    - type: Sprite
      state: soapnt

- type: entity
  name: soap
  id: SoapDeluxe
  parent: Soap
  description: A deluxe Waffle Co. brand bar of soap. Smells of condoms.
  components:
    - type: Sprite
      state: soapdeluxe

- type: entity
  name: soap
  id: SoapSyndie
  parent: Soap
  description: An untrustworthy bar of soap. Smells of fear.
  components:
    - type: Sprite
      state: soapsyndie
    - type: Slippery
      paralyzeTime: 5

- type: entity
  name: soap
  id: SoapHomemade
  parent: Soap
  description: A homemade bar of soap. Smells of... well....
  components:
    - type: Sprite
      state: soapgibs
    - type: Slippery
      paralyzeTime: 2

- type: entity
  name: omega soap
  id: SoapOmega
  parent: Soap
  description: The most advanced soap known to mankind. Smells of bluespace.
  components:
    - type: Sprite
      state: soapomega
    - type: Slippery
      paralyzeTime: 7

- type: entity
  id: Vapor
  name: "vapor"
  abstract: true
  components:
    - type: SnapGrid
      offset: Center
    - type: SolutionContainer
      maxVol: 50
    - type: Vapor
    - type: AnimationPlayer
    - type: Sprite
      sprite: Effects/chempuff.rsi
      layers:
        - state: chempuff
          map: [ "enum.VaporVisualLayers.Base" ]
    - type: Physics
      anchored: false
      hard: false
      shapes:
        - !type:PhysShapeAabb
          bounds: "-0.25,-0.25,0.25,0.25"
          mask:
            - Impassable
            - MobImpassable
            - SmallImpassable
    - type: Appearance
      visuals:
        - type: VaporVisualizer

- type: entity
  name: spray bottle
  id: SprayBottle
  parent: BaseItem
  suffix: Empty
  description: A spray bottle with an unscrewable top.
  components:
  - type: Sprite
    sprite: Objects/Specific/Janitorial/janitorial.rsi
    state: cleaner
  - type: SolutionContainer
    maxVol: 100
    caps: AddTo, RemoveFrom
  - type: Pourable
    transferAmount: 5.0
  - type: Spillable
  - type: ItemCooldown
  - type: Spray
    transferAmount: 10
    sprayVelocity: 2
    spraySound: /Audio/Effects/spray2.ogg

- type: entity
  name: spray bottle
  id: SprayBottleWater
  suffix: Filled
  parent: SprayBottle
  components:
    - type: SolutionContainer
      maxVol: 100
      contents:
        reagents:
          - ReagentId: chem.Water
            Quantity: 100

- type: entity
  name: space cleaner
  description: BLAM!-brand non-foaming space cleaner!
  id: SprayBottleSpaceCleaner
  parent: SprayBottle
  suffix: ""
  components:
    - type: SolutionContainer
      maxVol: 100
      contents:
        reagents:
          - ReagentId: chem.SpaceCleaner
            Quantity: 100
