# For produce that can't be immediately eaten

- type: entity
  parent: BaseItem
  id: ProduceBase
  abstract: true
  components:
  - type: SolutionContainerManager
  - type: Sprite
    netsync: false
    state: produce
  - type: Produce
  - type: PotencyVisuals
  - type: Appearance
  - type: Extractable
    grindableSolutionName: food

# For produce that can be immediately eaten

- type: entity
  parent: FoodInjectableBase
  id: FoodProduceBase
  abstract: true
  components:
  - type: SolutionContainerManager
  - type: Sprite
    netsync: false
    state: produce
  - type: Produce
  - type: PotencyVisuals
  - type: Appearance
  - type: Extractable
    grindableSolutionName: food

# Subclasses

- type: entity
  name: wheat bushel
  description: Sigh... wheat... a-grain?
  id: WheatBushel
  parent: ProduceBase
  components:
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/wheat.rsi
  - type: SolutionContainerManager
    solutions:
      food:
        reagents:
        - ReagentId: Flour
          Quantity: 10
  - type: Produce
    seed: wheat

- type: entity
  name: oat bushel
  description: Eat oats, do squats.
  id: OatBushel
  parent: ProduceBase
  components:
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/oat.rsi
  - type: SolutionContainerManager
    solutions:
      food:
        reagents:
        - ReagentId: Oats
          Quantity: 10
  - type: Produce
    seed: oat
  - type: Extractable
    juiceSolution:
      reagents:
      - ReagentId: MilkOat
        Quantity: 5

- type: entity
  name: sugarcane
  description: Sickly sweet.
  id: Sugarcane
  parent: ProduceBase
  components:
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/sugarcane.rsi
  - type: SolutionContainerManager
    solutions:
      food:
        reagents:
        - ReagentId: Glucose
          Quantity: 10
  - type: Produce
    seed: sugarcane

- type: entity
  name: tower-cap log
  description: It's better than bad, it's good!
  id: Log
  parent: ProduceBase
  components:
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/towercap.rsi
  - type: SolutionContainerManager
  - type: MeleeWeapon
    damage:
      types:
        Blunt: 10
  - type: Produce
    seed: towercap
  - type: Log

- type: entity
  name: nettle
  description: Stingy little prick.
  id: Nettle
  parent: ProduceBase
  components:
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/nettle.rsi
  - type: Item
    size: 10
    sprite: Objects/Specific/Hydroponics/nettle.rsi
    prefix: inhand
  - type: MeleeWeapon
    damage:
      types:
        Heat: 10
  - type: SolutionContainerManager
    solutions:
      food:
        reagents:
        - ReagentId: Histamine
          Quantity: 25
  - type: Produce
    seed: nettle
  - type: MeleeChemicalInjector
    transferAmount: 6 #To OD someone you would need 2 nettles and about 6-7 hits, the DOT is likely to crit them if they are running away with almost no health
  - type: Extractable
    grindableSolutionName: food
  - type: InjectableSolution
    solution: food

- type: entity
  name: banana
  parent: FoodProduceBase
  id: FoodBanana
  description: Rich in potassium.
  components:
  - type: Food
    trash: TrashBananaPeel
  - type: SolutionContainerManager
    solutions:
      food:
        maxVol: 6
        reagents:
        - ReagentId: Nutriment
          Quantity: 4
        - ReagentId: Vitamin
          Quantity: 2
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/banana.rsi
  - type: Produce
    seed: banana
  - type: Extractable
    juiceSolution:
      reagents:
      - ReagentId: JuiceBanana
        Quantity: 10

- type: entity
  name: banana peel
  parent: BaseItem
  id: TrashBananaPeel
  components:
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/banana.rsi
    state: peel
  - type: Item
    sprite: Objects/Specific/Hydroponics/banana.rsi
    HeldPrefix: peel
  - type: Slippery
    intersectPercentage: 0.2
  - type: CollisionWake
    enabled: false
  - type: Physics
    bodyType: Dynamic
  - type: Fixtures
    fixtures:
    - shape:
        !type:PhysShapeAabb
        bounds: "-0.2,-0.2,0.2,0.2"
      id: "slips"
      hard: false
      layer:
        - SmallImpassable
    - shape:
        !type:PhysShapeAabb
        bounds: "-0.2,-0.2,0.2,0.2"
      mass: 5
      mask:
        - SmallImpassable
  - type: Tag
    tags:
    - Recyclable
    - Trash
  - type: SolutionContainerManager
    solutions:
      food:
        maxVol: 4
        reagents:
        - ReagentId: PulpedBananaPeel
          Quantity: 4
  - type: Extractable
    grindableSolutionName: food
  - type: Recyclable

- type: entity
  name: carrot
  parent: FoodProduceBase
  id: FoodCarrot
  description: It's good for the eyes!
  components:
  - type: Tag
    tags:
    - Carrot
  - type: SolutionContainerManager
    solutions:
      food:
        maxVol: 9
        reagents:
        - ReagentId: Nutriment
          Quantity: 5
        - ReagentId: Vitamin
          Quantity: 4
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/carrot.rsi
  - type: Produce
    seed: carrots
  - type: Extractable
    juiceSolution:
      reagents:
      - ReagentId: JuiceCarrot
        Quantity: 10

- type: entity
  name: lemon
  parent: FoodProduceBase
  id: FoodLemon
  description: When life gives you lemons, be grateful they aren't limes.
  components:
  - type: SolutionContainerManager
    solutions:
      food:
        maxVol: 9
        reagents:
        - ReagentId: Nutriment
          Quantity: 5
        - ReagentId: Vitamin
          Quantity: 4
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/lemon.rsi
  - type: Produce
    seed: lemon
  - type: Extractable
    juiceSolution:
      reagents:
      - ReagentId: JuiceLime
        Quantity: 10

- type: entity
  name: pineapple
  parent: FoodProduceBase
  id: FoodPineapple
  description: Mmm, tropical.
  components:
  - type: SolutionContainerManager
    solutions:
      food:
        maxVol: 16
        reagents:
        - ReagentId: Nutriment
          Quantity: 10
        - ReagentId: Vitamin
          Quantity: 2
        - ReagentId: Water
          Quantity: 4
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/pineapple.rsi
  - type: Produce
    seed: pineapple
  - type: Extractable
    juiceSolution:
      reagents:
      - ReagentId: JuicePineapple
        Quantity: 10
  - type: SliceableFood
    count: 5
    slice: FoodPineappleSlice

- type: entity
  name: potato
  parent: FoodProduceBase
  id: FoodPotato
  description: The space Irish starved to death after their potato crops died. Sadly they were unable to fish for space carp due to it being the queen's space. Bringing this up to any space IRA member will drive them insane with anger.
  components:
  - type: SolutionContainerManager
    solutions:
      food:
        maxVol: 14
        reagents:
        - ReagentId: Nutriment
          Quantity: 10
        - ReagentId: Vitamin
          Quantity: 4
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/potato.rsi
  - type: Produce
    seed: potato
  - type: Extractable
    juiceSolution:
      reagents:
      - ReagentId: JuicePotato
        Quantity: 10

- type: entity
  name: tomato
  parent: FoodProduceBase
  id: FoodTomato
  description: I say to-mah-to, you say tom-mae-to.
  components:
  - type: SolutionContainerManager
    solutions:
      food:
        maxVol: 14
        reagents:
        - ReagentId: Nutriment
          Quantity: 10
        - ReagentId: Vitamin
          Quantity: 4
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/tomato.rsi
  - type: Produce
    seed: tomato
  - type: Extractable
    grindableSolutionName: food
    juiceSolution:
      reagents:
      - ReagentId: JuiceTomato
        Quantity: 10
  - type: DamageOnLand
    damage:
      types:
        Blunt: 1
  - type: DamageOtherOnHit
    damage:
      types:
        Blunt: 1
       #Dignity: 25
  - type: Damageable
    damageContainer: Biological
  - type: DamageOnHighSpeedImpact
    minimumSpeed: 0.1
    damage:
      types:
        Blunt: 1
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 1
      behaviors:
      - !type:PlaySoundBehavior
        sound:
          collection: desecration
      - !type:SpawnEntitiesBehavior
        spawn:
          PuddleTomato:
            min: 1
            max: 1
      - !type:DoActsBehavior
        acts: [ "Destruction" ]

- type: entity
  name: tomato
  id: PuddleTomato
  parent: PuddleBase
  description: Splat.
  components:
  - type: Sprite
    sprite: Fluids/tomato_splat.rsi
    state: puddle-0
    netsync: false
  - type: Puddle
  - type: SolutionContainerManager
    solutions:
      puddle:
        reagents:
        - ReagentId: JuiceTomato
          Quantity: 10
  - type: Evaporation
    lowerLimit: 0 # todo: reimplement stain behaviour, ideally in a way that doesn't use evaporation lowerLimit
  - type: Appearance
    visuals:
    - type: PuddleVisualizer

- type: entity
  name: eggplant
  parent: FoodProduceBase
  id: FoodEggplant
  description: Maybe there's a chicken inside?
  components:
  - type: SolutionContainerManager
    solutions:
      food:
        maxVol: 14
        reagents:
        - ReagentId: Nutriment
          Quantity: 10
        - ReagentId: Vitamin
          Quantity: 4
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/eggplant.rsi
  - type: Produce
    seed: eggplant

- type: entity
  name: apple
  parent: FoodProduceBase
  id: FoodApple
  description: It's a little piece of Eden.
  components:
  - type: SolutionContainerManager
    solutions:
      food:
        maxVol: 14
        reagents:
        - ReagentId: Nutriment
          Quantity: 10
        - ReagentId: Vitamin
          Quantity: 4
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/apple.rsi
  - type: Produce
    seed: apple
  - type: Extractable
    juiceSolution:
      reagents:
      - ReagentId: JuiceApple
        Quantity: 10

- type: entity
  name: ear of corn
  parent: FoodProduceBase
  id: FoodCorn
  description: Needs some butter! And some cooking...
  components:
  - type: Food
    trash: FoodCornTrash
  - type: SolutionContainerManager
    solutions:
      food:
        maxVol: 14
        reagents:
        - ReagentId: Nutriment
          Quantity: 10
        - ReagentId: Vitamin
          Quantity: 4
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/corn.rsi
  - type: Produce
    seed: corn
  - type: Extractable
    juiceSolution:
      reagents:
      - ReagentId: Cornoil
        Quantity: 3
      - ReagentId: Enzyme
        Quantity: 2

- type: entity
  name: corn cob
  parent: BaseItem
  id: FoodCornTrash
  description: Not a dang kernel left.
  components:
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/corn.rsi
    state: cob
    netsync: false
  - type: Item
    size: 1

- type: entity
  name: onion
  parent: FoodProduceBase
  id: FoodOnion
  description: Nothing to cry over.
  components:
  - type: SolutionContainerManager
    solutions:
      food:
        maxVol: 14
        reagents:
        - ReagentId: Nutriment
          Quantity: 10
        - ReagentId: Vitamin
          Quantity: 4
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/onion.rsi
  - type: Produce
    seed: onion
  - type: SliceableFood
    count: 5
    slice: FoodOnionSlice

- type: entity
  name: red onion
  parent: FoodProduceBase
  id: FoodOnionRed
  description: Purple despite the name.
  components:
  - type: SolutionContainerManager
    solutions:
      food:
        maxVol: 14
        reagents:
        - ReagentId: Nutriment
          Quantity: 10
        - ReagentId: Vitamin
          Quantity: 4
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/onion_red.rsi
  - type: Produce
    seed: onionred
  - type: SliceableFood
    count: 4
    slice: FoodOnionRedSlice

- type: entity
  name: chanterelle cluster
  parent: FoodProduceBase
  id: FoodMushroom
  description: "Cantharellus Cibarius: These jolly yellow little shrooms sure look tasty!"
  components:
  - type: SolutionContainerManager
    solutions:
      food:
        reagents:
        - ReagentId: Nutriment
          Quantity: 5
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/chanterelle.rsi
  - type: Produce
    seed: chanterelle

# Slices

- type: entity
  parent: FoodInjectableBase
  id: ProduceSliceBase
  abstract: true
  components:
  - type: SolutionContainerManager
    solutions:
      food:
        maxVol: 3
        reagents:
        - ReagentId: Nutriment
          Quantity: 2
  - type: Sprite
    netsync: false
    state: slice
  - type: Extractable
    grindableSolutionName: food

- type: entity
  name: pineapple slice
  parent: ProduceSliceBase
  id: FoodPineappleSlice
  description: Mmm, tropical.
  components:
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/pineapple.rsi
  - type: Extractable
    juiceSolution:
      reagents:
      - ReagentId: JuicePineapple
        Quantity: 2

- type: entity
  name: onion slice
  parent: ProduceSliceBase
  id: FoodOnionSlice
  description: Nothing to cry over.
  components:
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/onion.rsi

- type: entity
  name: red onion slice
  parent: ProduceSliceBase
  id: FoodOnionRedSlice
  description: Purple despite the name.
  components:
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/onion_red.rsi

- type: entity
  name: chili
  parent: FoodProduceBase
  id: FoodChili
  description: Spicy, best not touch your eyes.
  components:
    - type: SolutionContainerManager
      solutions:
        food:
          maxVol: 18
          reagents:
            - ReagentId: Nutriment
              Quantity: 4
            - ReagentId: CapsaicinOil
              Quantity: 10
            - ReagentId: Vitamin
              Quantity: 4
    - type: Sprite
      sprite: Objects/Specific/Hydroponics/chili.rsi
    - type: Produce
      seed: chili

- type: entity
  name: aloe
  parent: FoodProduceBase
  id: FoodAloe
  description: A fragrant plant with soothing properties.
  components:
  - type: SolutionContainerManager
    solutions:
      food:
        maxVol: 20 ##I'm pretty sure this has to match the total of 100 potency yields
        reagents:
        - ReagentId: Aloe
          Quantity: 10
        - ReagentId: Kelotane
          Quantity: 10
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/aloe.rsi
  - type: Produce
    seed: aloe
  - type: Extractable
    grindableSolutionName: food

- type: entity
  name: poppy
  parent: FoodProduceBase
  id: FoodPoppy
  description: A flower with extracts often used in the production of medicine
  components:
  - type: SolutionContainerManager
    solutions:
      food:
        maxVol: 12
        reagents:
        - ReagentId: Nutriment
          Quantity: 2
        - ReagentId: Bicaridine
          Quantity: 10
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/poppy.rsi
  - type: Produce
    seed: poppy
  - type: Extractable
    grindableSolutionName: food

- type: entity
  name: lingzhi
  parent: FoodProduceBase
  id: FoodLingzhi
  description: A potent medicinal mushroom. Don't go overboard.
  components:
  - type: SolutionContainerManager
    solutions:
      food:
        maxVol: 40
        reagents:
        - ReagentId: Ultravasculine
          Quantity: 20
        - ReagentId: Epinephrine
          Quantity: 20
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/lingzhi.rsi
  - type: Produce
    seed: lingzhi
  - type: Extractable
    grindableSolutionName: food

- type: entity
  name: ambrosia vulgaris
  parent: FoodProduceBase
  id: FoodAmbrosiaVulgaris
  description: A medicinal plant. May make you feel a little funny.
  components:
  - type: SolutionContainerManager
    solutions:
      food:
        maxVol: 26
        reagents:
        - ReagentId: Bicaridine
          Quantity: 10
        - ReagentId: Kelotane
          Quantity: 10
        - ReagentId: Nutriment
          Quantity: 2
        - ReagentId: Desoxyephedrine
          Quantity: 2
        - ReagentId: Vitamin
          Quantity: 2
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/ambrosia_vulgaris.rsi
  - type: Produce
    seed: ambrosiaVulgaris
  - type: Extractable
    grindableSolutionName: food
  - type: Clothing
    sprite: Objects/Specific/Hydroponics/ambrosia_vulgaris.rsi
    Slots:
    - HEAD

- type: entity
  name: galaxythistle
  parent: FoodProduceBase
  id: FoodGalaxythistle
  description: A medicinal plant used for its antitoxin.
  components:
  - type: SolutionContainerManager
    solutions:
      food:
        maxVol: 25
        reagents:
        - ReagentId: Stellibinin
          Quantity: 25
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/galaxythistle.rsi
  - type: Produce
    seed: galaxythistle
  - type: Extractable
    grindableSolutionName: food

- type: entity
  name: fly amanita
  parent: FoodProduceBase
  id: FoodFlyAmanita
  description: A delicious-looking mushroom like you see in those cartoons.
  components:
  - type: SolutionContainerManager
    solutions:
      food:
        maxVol: 30
        reagents:
        - ReagentId: Amatoxin
          Quantity: 25
        - ReagentId: Nutriment
          Quantity: 5
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/fly_amanita.rsi
  - type: Produce
    seed: flyAmanita
  - type: Extractable
    grindableSolutionName: food

- type: entity
  name: gatfruit
  parent: FoodProduceBase
  id: FoodGatfruit
  description: A delicious, gun-shaped fruit with a thick wooden stem.
  components:
  - type: SolutionContainerManager
    solutions:
      food:
        maxVol: 10
        reagents:
        - ReagentId: Nutriment
          Quantity: 5
        - ReagentId: Sulfur
          Quantity: 5
  - type: Sprite
    sprite: Objects/Specific/Hydroponics/gatfruit.rsi
  - type: Produce
    seed: gatfruit
  - type: Food
    trash: RevolverPredator
