# TODO: Fix - The idea is that blood and vomit is potentially not tile-bound versions of puddles(?)
# TODO: Replace this whole thing with a SolutionFillComponent that uses a reagent table.
- type: entity
  id: PuddleTemporary
  parent: Puddle
  abstract: true
  components:
  - type: Transform
    anchored: true
    noRot: false

- type: entity
  id: PuddleSmear
  parent: PuddleTemporary
  suffix: Smear

- type: entity
  id: PuddleVomit
  parent: PuddleTemporary
  suffix: Vomit
  components:
  - type: Solution
    solution:
      reagents:
      - ReagentId: Vomit
        Quantity: 10

- type: entity
  id: PuddleEgg
  parent: PuddleTemporary
  suffix: Egg
  components:
  - type: Solution
    solution:
      reagents:
      - ReagentId: Egg
        Quantity: 6 # same as when cooking

- type: entity
  id: PuddleTomato
  parent: PuddleTemporary
  suffix: Tomato
  components:
  - type: Solution
    solution:
      reagents:
      - ReagentId: JuiceTomato
        Quantity: 10

- type: entity
  parent: PuddleTemporary
  id: PuddleBloodSmall
  suffix: Blood (5u)
  components:
  - type: Solution
    solution:
      reagents:
      - ReagentId: Blood
        Quantity: 5

- type: entity
  parent: PuddleTemporary
  id: PuddleBlood
  suffix: Blood (30u)
  components:
  - type: Solution
    solution:
      reagents:
      - ReagentId: Blood
        Quantity: 30

- type: entity
  parent: PuddleTemporary
  id: PuddleFluorosulfuricAcidSmall
  suffix: FluorosulfuricAcid (5u)
  components:
  - type: Solution
    solution:
      reagents:
      - ReagentId: FluorosulfuricAcid
        Quantity: 5

- type: entity
  parent: PuddleTemporary
  id: PuddleFluorosulfuricAcid
  suffix: FluorosulfuricAcid (15u)
  components:
  - type: Solution
    solution:
      reagents:
      - ReagentId: FluorosulfuricAcid
        Quantity: 15

- type: entity
  id: PuddleWatermelon
  parent: PuddleTemporary
  suffix: Watermelon
  components:
  - type: Solution
    solution:
      reagents:
      - ReagentId: JuiceWatermelon
        Quantity: 30

- type: entity
  id: PuddleFlour
  parent: PuddleTemporary
  suffix: Flour
  components:
  - type: Solution
    solution:
      reagents:
      - ReagentId: Flour
        Quantity: 15

- type: entity
  id: PuddleSparkle
  name: sparkle
  placement:
    mode: SnapgridCenter
  components:
    # Animation is like 3 something seconds so we just need to despawn it before then.
    - type: TimedDespawn
      lifetime: 1
    - type: EvaporationSparkle
    - type: Transform
      noRot: true
      anchored: true
    - type: Sprite
      layers:
        - sprite: Fluids/wet_floor_sparkles.rsi
          state: sparkles
      drawdepth: Puddles
      color: "#FFFFFF80"

- type: entity
  parent: SolutionTile
  id: Puddle
  name: puddle
  description: A puddle of liquid.
  placement:
    mode: SnapgridCenter
  components:
  - type: Clickable
  - type: Slippery
    staminaDamage: 0
    frictionStatusTime: 0 # Don't apply friction twice
  - type: Transform
    noRot: true
    anchored: true
  - type: Sprite
    layers:
    - sprite: Fluids/puddle.rsi
      state: splat0
    drawdepth: Puddles
    color: "#FFFFFF80"
  - type: Physics
    bodyType: Static
  - type: Fixtures
    fixtures:
      slipFixture:
        shape:
          !type:PhysShapeAabb
          bounds: "-0.4,-0.4,0.4,0.4"
        mask:
        - ItemMask
        layer:
        - SlipLayer
        hard: false
  - type: IconSmooth
    key: puddles
    additionalKeys:
    - walls
    base: splat
    mode: CardinalFlags
  - type: Puddle
  - type: Solution
    id: puddle
  - type: MixableSolution
    solution: puddle
  - type: Appearance
  - type: ActiveEdgeSpreader
  - type: EdgeSpreader
    id: Puddle
  - type: StepTrigger
  - type: Edible
    edible: Drink
    delay: 3
    transferAmount: 1
    solution: puddle
    utensil: Spoon
  - type: ExaminableSolution
    solution: puddle
    locVolume: "examinable-solution-on-examine-volume-puddle"
  - type: DrawableSolution
    solution: puddle
  - type: BadDrink
  - type: IgnoresFingerprints
  - type: Tag
    tags:
    - DNASolutionScannable
