# TODO: Add the other mess types
- type: entity
  id: PuddleBase
  abstract: true
  components:
  - type: SnapGrid
  - type: Sprite
    drawdepth: FloorObjects
  - type: SolutionContainer
  - type: Puddle
    spill_sound: /Audio/Effects/Fluids/splat.ogg
    recolor: true
  - type: LoopingSound
  - type: Clickable
  - type: Slippery
  - type: Physics
    fixtures:
    - shape:
        !type:PhysShapeAabb
          bounds: "-0.4,-0.4,0.4,0.4"
      layer:
        - SmallImpassable
      mask:
        - SmallImpassable
        - MobImpassable
      hard: false

- type: entity
  name: puddle
  id: PuddleGeneric
  parent: PuddleSmear

- type: entity
  name: gibblets
  id: PuddleGibblet
  parent: PuddleBase
  description: Gross.
  components:
  - type: Sprite
    sprite: Fluids/gibblet.rsi # Placeholder
    state: gibblet-0
  - type: Puddle
    variants: 5
    state: gibblet

- type: entity
  name: puddle
  id: PuddleSmear
  parent: PuddleBase
  description: A puddle of liquid.
  components:
  - type: Sprite
    sprite: Fluids/smear.rsi # Placeholder
    state: smear-0
  - type: Puddle
    variants: 7
    state: smear

- type: entity
  name: puddle
  id: PuddleSplatter
  parent: PuddleBase
  description: A puddle of liquid.
  components:
  - type: Sprite
    sprite: Fluids/splatter.rsi # Placeholder
    state: splatter-0
  - type: Puddle
    variants: 6
    state: splatter

- type: entity
  name: vomit
  id: PuddleVomit
  parent: PuddleBase
  description: Gross.
  components:
  - type: Sprite
    sprite: Fluids/vomit.rsi
    state: vomit-0
  - type: Puddle
    variants: 4
    recolor: false
    evaporate_threshold: -1
    state: vomit

- type: entity
  name: toxins vomit
  id: PuddleVomitToxin
  parent: PuddleVomit
  description: You probably don't want to get too close to this.
  components:
  - type: Sprite
    sprite: Fluids/vomit_toxin.rsi
    state: vomit_toxin-0
  - type: Puddle
    variants: 4
    recolor: false
    state: vomit_toxin

- type: entity
  name: writing
  id: PuddleWriting
  parent: PuddleBase
  description: A bit of liquid.
  components:
  - type: Sprite
    sprite: Fluids/writing.rsi # Placeholder
    state: writing-0
  - type: Puddle
    variants: 5
    state: writing
