- type: entity
  name: fire extinguisher
  parent: BaseItem
  id: FireExtinguisher
  description: It extinguishes fires.
  components:
    - type: Sprite
      sprite: Objects/Misc/fire_extinguisher.rsi
      layers:
        - state: fire_extinguisher_closed
          map: [ "enum.SprayVisualLayers.Base" ]
    - type: Item
      sprite: Objects/Misc/fire_extinguisher.rsi
      size: 10
    - type: SolutionContainer
      maxVol: 100
      caps: Refillable, Drainable
      contents:
        reagents:
          - ReagentId: Water
            Quantity: 100
    - type: ItemCooldown
    - type: Spray
      spraySound: /Audio/Effects/extinguish.ogg
      sprayedPrototype: ExtinguisherSpray
      hasSafety: true
      vaporAmount: 3
      vaporSpread: 90
      sprayVelocity: 2.0
      sprayTimeAlive: 1.5
      transferAmount: 5
      impulse: 50.0
    - type: FireExtinguisher
    - type: Appearance
      visuals:
        - type: SprayVisualizer
          safety_on_state: fire_extinguisher_closed
          safety_off_state: fire_extinguisher_open

- type: entity
  name: extinguisher spray
  id: ExtinguisherSpray
  parent: Vapor
  abstract: true
  components:
    - type: Sprite
      sprite: Effects/extinguisherSpray.rsi
      layers:
        - state: extinguish
          map: [ "enum.VaporVisualLayers.Base" ]
    - type: Physics
      bodyType: KinematicController
      fixtures:
      - shape:
          !type:PhysShapeAabb
            bounds: "-0.25,-0.25,0.25,0.25"
        hard: false
        mask:
          - Impassable
          - MobImpassable
          - SmallImpassable
    - type: Appearance
      visuals:
        - type: VaporVisualizer
          animation_delay: 0.8
          animation_state: extinguish
