- type: entity
  name: reinforced jug
  parent: Jug
  id: ReinforcedJug
  description: The sterile plastic of this jug has been reinforced with a metallic shell allowing it to contain an impressive amount of liquid.
  components:
    - type: SolutionContainerVisuals
      inHandsMaxFillLevels: 4
    - type: SolutionContainerManager
      solutions:
        beaker:
          maxVol: 400
    - type: Sprite
      sprite: _NF/Objects/Specific/Chemistry/reinforced_jug.rsi
      layers:
      - state: icon
      - state: stopper
        visible: true
        map: ["enum.OpenableVisuals.Layer"]
      - state: jug1
        map: [ "enum.SolutionContainerLayers.Fill" ]
        visible: false
    - type: Item
      size: Large
      shape:
      - 0,0,2,2
      sprite: _NF/Objects/Specific/Chemistry/reinforced_jug.rsi
      inhandVisuals:
        left:
        - state: inhand-left
        - state: inhand-left-fill-1
          map: [ "enum.SolutionContainerLayers.Fill" ]
          visible: false
        right:
        - state: inhand-right
        - state: inhand-right-fill-1
          map: [ "enum.SolutionContainerLayers.Fill" ]
          visible: false
    - type: Openable
      sound:
        collection: bottleOpenSounds
      closeable: true
      closeSound:
        collection: bottleCloseSounds
    - type: StaticPrice
      price: 30 # Consistent with BaseBeakerMetallic
    - type: Destructible # Hacky - takes damage, but shouldn't be destructible
      thresholds: []
    - type: GenericVisualizer
      visuals:
        enum.OpenableVisuals.Opened:
          enum.OpenableVisuals.Layer:
            True: { visible: false }
            False: { visible: true }

- type: entity
  name: bluespace jug
  parent: Jug
  id: JugBluespace
  description: Uses bluespace technology to contain an impossible amount of liquid.
  components:
    - type: SolutionContainerManager
      solutions:
        beaker:
          maxVol: 1000
    - type: Sprite
      sprite: _NF/Objects/Specific/Chemistry/jug_bluespace.rsi
      layers:
        - state: jug
        - state: jug-unlit
          shader: unshaded
        - state: jug1
          map: [ "enum.SolutionContainerLayers.Fill" ]
          visible: false
    - type: Item
      sprite: _NF/Objects/Specific/Chemistry/jug_bluespace.rsi
      inhandVisuals:
        left:
        - state: inhand-left
        - state: inhand-left-unlit
          shader: unshaded
        - state: inhand-left-fill-1
          map: [ "enum.SolutionContainerLayers.Fill" ]
          visible: false
        right:
        - state: inhand-right
        - state: inhand-right-unlit
          shader: unshaded
        - state: inhand-right-fill-1
          map: [ "enum.SolutionContainerLayers.Fill" ]
          visible: false
    - type: StaticPrice
      price: 30 # Consistent with BaseBeakerMetallic
    - type: Destructible # Hacky - takes damage, but shouldn't be destructible
      thresholds: []

# Frontier: an unspillable jug for welding fuel.
- type: entity
  name: jerry can
  parent: BaseItem
  id: JerryCan
  description: A plastic jerry can with a spill-proof nozzle.
  components:
  - type: SolutionContainerManager
    solutions:
      beaker:
        maxVol: 200
  - type: Sprite
    sprite: _NF/Objects/Specific/Chemistry/jerrycan.rsi
    layers:
    - state: jerrycan
    - state: jerrycan1
      map: [ "enum.SolutionContainerLayers.Fill" ]
      visible: false
  - type: Item
    size: Normal
    sprite: _NF/Objects/Specific/Chemistry/jerrycan.rsi
  - type: MixableSolution
    solution: beaker
  - type: RefillableSolution
    solution: beaker
  - type: DrainableSolution
    solution: beaker
  - type: ExaminableSolution
    solution: beaker
  - type: DrawableSolution
    solution: beaker
  - type: InjectableSolution
    solution: beaker
  - type: SolutionTransfer
    canChangeTransferAmount: true
  - type: SolutionItemStatus
    solution: beaker
  - type: UserInterface
    interfaces:
      enum.TransferAmountUiKey.Key:
        type: TransferAmountBoundUserInterface
  - type: Drink
    solution: beaker
    delay: 1.5
    forceFeedDelay: 5
  - type: Appearance
  - type: SolutionContainerVisuals
    maxFillLevels: 5
    fillBaseName: jerrycan
    inHandsMaxFillLevels: 5
    inHandsFillBaseName: -fill-
  - type: StaticPrice
    price: 10
  - type: Damageable
    damageContainer: Inorganic
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 200
      behaviors:
        - !type:DoActsBehavior
          acts: [ "Destruction" ]
    - trigger:
        !type:DamageTrigger
        damage: 20
      behaviors:
      - !type:PlaySoundBehavior
        sound:
          collection: MetalBreak
          params:
            volume: -4
      - !type:SpillBehavior { }
      - !type:SpawnEntitiesBehavior
        spawn:
          SheetPlastic1:
            min: 0
            max: 1
        transferForensics: true
      - !type:DoActsBehavior
        acts: [ "Destruction" ]
  - type: Label
  - type: TrashOnSolutionEmpty # Frontier
    solution: beaker # Frontier

- type: entity
  parent: JerryCan
  suffix: welding fuel
  id: JerryCanWeldingFuel
#  categories: [ HideSpawnMenu ] # Frontier
  components:
  - type: Label
    currentLabel: reagent-name-welding-fuel
  - type: SolutionContainerManager
    solutions:
      beaker:
        reagents:
        - ReagentId: WeldingFuel
          Quantity: 200
  - type: StaticPrice # Frontier
    vendPrice: 500 # Frontier

# Fuel-grade items
- type: entity
  parent: BaseItem
  id: FuelPlasma
  name: fuel-grade plasma
  description: A rod made of desaturated plasma, suitable for fuel.
  suffix: 25 # mono
  components:
  - type: Material
  - type: PhysicalComposition
    materialComposition:
      FuelGradePlasma: 100
  - type: Sprite
    sprite: _NF/Objects/Specific/Fuel/fuelgrade_material.rsi
    layers:
    - state: plasma
      map: ["base"]
  - type: Appearance
  - type: StaticPrice
    price: 0
    vendPrice: 1500 # mono
  - type: Stack
    stackType: FuelPlasma
    count: 25 # mono

- type: entity
  parent: FuelPlasma
  id: FuelPlasma1
  suffix: Single
  components:
  - type: Stack
    count: 1
  - type: StaticPrice
    vendPrice: 0

- type: entity
  parent: BaseItem
  id: FuelUranium
  name: fuel-grade uranium
  description: A rod made of semi-processed uranium, suitable for fuel.
  suffix: 25 # mono
  components:
  - type: Material
  - type: PhysicalComposition
    materialComposition:
      FuelGradeUranium: 100
  - type: Sprite
    sprite: _NF/Objects/Specific/Fuel/fuelgrade_material.rsi
    layers:
    - state: uranium
      map: ["base"]
  - type: Appearance
  - type: StaticPrice
    price: 0
    vendPrice: 3125 # mono
  - type: Stack
    stackType: FuelUranium
    count: 25 # mono

- type: entity
  parent: FuelUranium
  id: FuelUranium1
  suffix: Single
  components:
  - type: Stack
    count: 1
  - type: StaticPrice
    vendPrice: 0

- type: entity
  parent: BaseItem
  id: FuelBananium
  name: fuel-grade bananium
  description: A rod made from pressed bananium peels, suitable for fuel.
  suffix: 25 # mono
  components:
  - type: Material
  - type: PhysicalComposition
    materialComposition:
      FuelGradeBananium: 100
  - type: Sprite
    sprite: _NF/Objects/Specific/Fuel/fuelgrade_material.rsi
    layers:
    - state: bananium
      map: ["base"]
  - type: Appearance
  - type: StaticPrice
    price: 0
    vendPrice: 6250 # mono
  - type: Stack
    stackType: FuelBananium
    count: 25 # mono

- type: entity
  parent: FuelBananium
  id: FuelBananium1
  suffix: Single
  components:
  - type: Stack
    count: 1
  - type: StaticPrice
    vendPrice: 0

#Reinforced Jug chem fills.

- type: entity
  parent: ReinforcedJug
  suffix: carbon
  id: ReinforcedJugCarbon
  categories: [ HideSpawnMenu ]
  components:
  - type: Label
    currentLabel: reagent-name-carbon
  - type: SolutionContainerManager
    solutions:
      beaker:
        reagents:
        - ReagentId: Carbon
          Quantity: 400

- type: entity
  parent: ReinforcedJug
  suffix: chlorine
  id: ReinforcedJugChlorine
  categories: [ HideSpawnMenu ]
  components:
  - type: Label
    currentLabel: reagent-name-chlorine
  - type: SolutionContainerManager
    solutions:
      beaker:
        reagents:
        - ReagentId: Chlorine
          Quantity: 400

- type: entity
  parent: ReinforcedJug
  suffix: ethanol
  id: ReinforcedJugEthanol
  categories: [ HideSpawnMenu ]
  components:
  - type: Label
    currentLabel: reagent-name-ethanol
  - type: SolutionContainerManager
    solutions:
      beaker:
        reagents:
        - ReagentId: Ethanol
          Quantity: 400

- type: entity
  parent: ReinforcedJug
  suffix: sugar
  id: ReinforcedJugSugar
  categories: [ HideSpawnMenu ]
  components:
  - type: Label
    currentLabel: reagent-name-sugar
  - type: SolutionContainerManager
    solutions:
      beaker:
        reagents:
        - ReagentId: Sugar
          Quantity: 400

- type: entity
  parent: ReinforcedJug
  suffix: hydrogen
  id: ReinforcedJugHydrogen
  categories: [ HideSpawnMenu ]
  components:
  - type: Label
    currentLabel: reagent-name-hydrogen
  - type: SolutionContainerManager
    solutions:
      beaker:
        reagents:
        - ReagentId: Hydrogen
          Quantity: 400

- type: entity
  parent: ReinforcedJug
  suffix: lithium
  id: ReinforcedJugLithium
  categories: [ HideSpawnMenu ]
  components:
  - type: Label
    currentLabel: reagent-name-lithium
  - type: SolutionContainerManager
    solutions:
      beaker:
        reagents:
        - ReagentId: Lithium
          Quantity: 400

- type: entity
  parent: ReinforcedJug
  suffix: nitrogen
  id: ReinforcedJugNitrogen
  categories: [ HideSpawnMenu ]
  components:
  - type: Label
    currentLabel: reagent-name-nitrogen
  - type: SolutionContainerManager
    solutions:
      beaker:
        reagents:
        - ReagentId: Nitrogen
          Quantity: 400

- type: entity
  parent: ReinforcedJug
  suffix: oxygen
  id: ReinforcedJugOxygen
  categories: [ HideSpawnMenu ]
  components:
  - type: Label
    currentLabel: reagent-name-oxygen
  - type: SolutionContainerManager
    solutions:
      beaker:
        reagents:
        - ReagentId: Oxygen
          Quantity: 400

- type: entity
  parent: ReinforcedJug
  suffix: phosphorus
  id: ReinforcedJugPhosphorus
  categories: [ HideSpawnMenu ]
  components:
  - type: Label
    currentLabel: reagent-name-phosphorus
  - type: SolutionContainerManager
    solutions:
      beaker:
        reagents:
        - ReagentId: Phosphorus
          Quantity: 400

- type: entity
  parent: ReinforcedJug
  suffix: potassium
  id: ReinforcedJugPotassium
  categories: [ HideSpawnMenu ]
  components:
  - type: Label
    currentLabel: reagent-name-potassium
  - type: SolutionContainerManager
    solutions:
      beaker:
        reagents:
        - ReagentId: Potassium
          Quantity: 400

- type: entity
  parent: ReinforcedJug
  suffix: silicon
  id: ReinforcedJugSilicon
  categories: [ HideSpawnMenu ]
  components:
  - type: Label
    currentLabel: reagent-name-potassium
  - type: SolutionContainerManager
    solutions:
      beaker:
        reagents:
        - ReagentId: Silicon
          Quantity: 400
