- type: entity
  parent: BaseItem
  id: RehydratableItem
  abstract: true
  components:
  - type: Item
    size: Tiny
  - type: SolutionManager
    solutions:
    - SolutionCube
  - type: RefillableSolution
    solution: cube
  - type: Reactive
    reactions:
    - reagents: [Water]
      methods: [Touch, Ingestion, Injection]
      effects:
      - !type:AddReagentToSolution
        reagent: Water
        solution: cube
  - type: Rehydratable
  - type: CollisionWake
    enabled: false
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          !type:PhysShapeAabb
          bounds: "-0.3,-0.3,0.3,0.3"
        density: 5
        mask:
        - ItemMask
      rehydrate: # needed to react to fire extinguishers
        shape:
          !type:PhysShapeAabb
          bounds: "-0.3,-0.3,0.3,0.3"
        hard: false
        layer:
        - LowImpassable

- type: entity
  parent: Solution
  id: SolutionCube # This will be deleted at a later date. Using solutions for this is really dumb.
  name: cube
  description: if you're reading this, nuh uh! file a bug report.
  categories: [ HideSpawnMenu ]
  components:
  - type: Solution
    id: cube
    solution:
      maxVol: 1

- type: entity
  abstract: true
  parent: [SolutionTiny, SolutionFood, RehydratableItem]
  id: RehydratableAnimalCube
  description: Just add water!
  components:
  - type: Sprite
    sprite: Objects/Misc/monkeycube.rsi
    state: cube
  - type: Solution
    solution:
      reagents: # Same as raw meat.
      - ReagentId: Nutriment
        Quantity: 5
      - ReagentId: UncookedAnimalProteins
        Quantity: 20
      - ReagentId: Fat
        Quantity: 5
  - type: Edible
  - type: FlavorProfile
    flavors:
    - chewy
    - horrible
    - compressed-meat
  - type: Tag
    tags:
    - Meat

- type: entity
  parent: RehydratableAnimalCube
  id: MonkeyCube
  name: monkey cube
  components:
  - type: Rehydratable
    possibleSpawns:
    - MobMonkey
  - type: Tag
    tags:
    - Meat
    - MonkeyCube

- type: entity
  parent: RehydratableAnimalCube
  id: KoboldCube
  name: kobold cube
  components:
  - type: Rehydratable
    possibleSpawns:
    - MobKobold

- type: entity
  parent: RehydratableAnimalCube
  id: CowCube
  name: cow cube
  components:
  - type: Rehydratable
    possibleSpawns:
    - MobCow

- type: entity
  parent: RehydratableAnimalCube
  id: GoatCube
  name: goat cube
  components:
  - type: Rehydratable
    possibleSpawns:
    - MobGoat

- type: entity
  parent: RehydratableAnimalCube
  id: MothroachCube
  name: mothroach cube
  components:
  - type: Rehydratable
    possibleSpawns:
    - MobMothroach

- type: entity
  parent: RehydratableAnimalCube
  id: MoproachCube
  name: moproach cube
  components:
  - type: Rehydratable
    possibleSpawns:
    - MobMoproach

- type: entity
  parent: RehydratableAnimalCube
  id: MouseCube
  name: mouse cube
  components:
  - type: Rehydratable
    possibleSpawns:
    - MobMouse

- type: entity
  parent: RehydratableAnimalCube
  id: CockroachCube
  name: cockroach cube
  description: Just add wa- OH GOD!
  components:
  - type: Rehydratable
    possibleSpawns:
    - MobCockroach

- type: entity
  parent: RehydratableAnimalCube
  id: SpaceCarpCube
  name: carp cube
  description: Just add water! At your own risk.
  components:
  - type: Solution
    solution:
      reagents:
      - ReagentId: CarpoToxin
        Quantity: 5
      - ReagentId: UncookedAnimalProteins
        Quantity: 20
      - ReagentId: Fat
        Quantity: 5
  - type: Rehydratable
    possibleSpawns:
    - MobCarp

- type: entity
  parent: RehydratableAnimalCube
  id: SpaceTickCube
  name: tick cube
  description: Just add water! At your own risk.
  components:
  - type: Rehydratable
    possibleSpawns:
    - MobTick

- type: entity
  parent: RehydratableAnimalCube
  id: AbominationCube
  name: abomination cube
  description: Just add blood!
  components:
  - type: Reactive
    reactions:
    - reagents: [Blood]
      methods: [Touch, Ingestion, Injection]
      effects:
      - !type:AddReagentToSolution
        reagent: Blood
        solution: cube
  - type: Rehydratable
    catalyst: Blood # blood is fuel
    possibleSpawns:
    - MobAbomination

# It inherits FoodComponent from PlushieCarp, but is de-facto inedible
# PlushieCarp has requiresSpecialDigestion:true, and this one is not whitelisted anywhere, so it behaves like it's not edible
- type: entity
  parent: [PlushieCarp, RehydratableItem, BaseSyndicateContraband]
  id: DehydratedSpaceCarp
  name: dehydrated space carp
  description: Looks like a plush toy carp, but just add water and it becomes a real-life space carp!
  components:
  - type: Fixtures # BaseItem from PlushieCarp overrides fixtures, making carp not react to extinguishers
    fixtures:
      fix1:
        shape:
          !type:PhysShapeAabb
          bounds: "-0.3,-0.3,0.3,0.3"
        density: 5
        mask:
        - ItemMask
      rehydrate: # needed to react to fire extinguishers
        shape:
          !type:PhysShapeAabb
          bounds: "-0.3,-0.3,0.3,0.3"
        hard: false
        layer:
        - LowImpassable
  # pet fish before rehydrating and he will be nice to you
  - type: FactionException
  - type: PettableFriend
    successString: petting-success-dehydrated-carp
    failureString: petting-failure-dehydrated-carp
  - type: EmitSoundOnUse
    handle: false # have to make it inedible because this causes petting and chewing trigger together
  - type: Rehydratable
    possibleSpawns:
    - MobCarp
  - type: Tag # overwriting PlushieCarp tags to remove ClothMade and Payload
    tags:
    - PlushieCarp

- type: entity
  parent: MonkeyCube
  id: SyndicateSponge
  suffix: Syndicate
  components:
  - type: Rehydratable
    possibleSpawns:
    - MobCarpHolo
    - MobXenoRavager
    - MobAngryBee
    - MobAdultSlimesYellowAngry
    - MobSpiderSpace
    - MobBearSpace
    - MobPurpleSnake
    - MobKangarooSpace
    - MobTick

- type: entity
  parent: RehydratableItem
  id: MopBucketCube
  name: mop bucket cube
  description: Just add water! And then more water!
  components:
  - type: Sprite
    sprite: Objects/Specific/Janitorial/janitorial.rsi
    state: mopbucket_cube
  - type: Rehydratable
    possibleSpawns:
    - MopBucket
