- type: entity
  parent: [DrinkBaseMaterialGlass, DrinkBase, DrinkVisualsFillOverlay]
  id: DrinkShotGlass
  name: shot glass
  description: Perfect for slamming down onto the table angrily.
  components:
  - type: Solution
    solution:
      maxVol: 5 # Shot glass translates to about 5.3u so we round down because Nanotrasen is cheap.
  - type: Item
    size: Tiny
  - type: Sprite
    sprite: Objects/Consumable/Drinks/shotglass.rsi
  - type: SolutionContainerVisuals
    maxFillLevels: 2
    inHandsMaxFillLevels: 1
  - type: FitsInDispenser
    solution: drink

- type: entity
  parent: [DrinkBaseMaterialMetal, SolutionLarge, DrinkBase]
  id: DrinkIceBucket
  name: ice bucket
  description: A special bucket of refreshy ice. Prohibited use for challenge with the same name!
  components:
  - type: Item
    size: Large
  - type: Solution
    solution:
      reagents:
      - ReagentId: Ice
        Quantity: 240
  - type: Sprite
    sprite: Objects/Consumable/Drinks/icebucket.rsi
    state: icon
  - type: PhysicalComposition
    materialComposition:
      Steel: 75

- type: entity
  parent: [DrinkBaseMaterialPorcelain, SolutionNormal, DrinkBase]
  id: DrinkTeapot
  name: teapot  # short and stout
  description: An elegant teapot. It simply oozes class.
  components:
  - type: Item
    size: Normal
  - type: Solution
    solution:
      reagents:
      - ReagentId: Tea
        Quantity: 120
  - type: Sprite
    sprite: Objects/Consumable/Drinks/teapot.rsi
  - type: FitsInDispenser
    solution: drink

# Probably shouldn't be here
# Also probably shouldn't let you put the cola back in, and should spawn deadly plastic rings after removing the last one
- type: entity
  parent: BaseStorageItem
  id: DrinkCanPack
  name: 6pack
  components:
  - type: Sprite
    sprite: Objects/Misc/6pack.rsi
    layers:
    - state: plastic-thingy
    - state: 6pack1
      map: ["6pack1"]
    - state: 6pack2
      map: ["6pack2"]
    - state: 6pack3
      map: ["6pack3"]
    - state: 6pack4
      map: ["6pack4"]
    - state: 6pack5
      map: ["6pack5"]
    - state: 6pack6
      map: ["6pack6"]
  - type: Item
    size: Normal
  - type: Storage
    grid:
    - 0,0,2,3
    whitelist:
      tags:
      - Cola
    hideStackVisualsWhenClosed: false
  - type: EntityTableContainerFill
    containers:
      storagebase:
        id: DrinkColaCan
        amount: 6
  - type: ItemCounter
    count:
      tags: [Cola]
    composite: true
    layerStates:
    - 6pack1
    - 6pack2
    - 6pack3
    - 6pack4
    - 6pack5
    - 6pack6
  - type: Appearance

# Bartender tools

- type: entity
  parent: [DrinkBaseMaterialStrongMetal, SolutionSmall, DrinkBase]
  id: DrinkShaker
  name: shaker
  description: The trusty mixing buddy of the bartender.
  components:
  - type: Solution
    solution:
      maxVol: 90 # Shakers are often about 700ml give or take and I like weird sizes so.
  - type: FitsInDispenser
    solution: drink
  - type: ExaminableSolution
    heldOnly: true # Opaque, can't see inside from a distance
  - type: Sprite
    sprite: Objects/Consumable/Drinks/shaker.rsi
    state: icon
  - type: Item
    sprite: Objects/Consumable/Drinks/shaker.rsi
    shape:
    - 0,0,0,2 # 3 tall
  - type: PhysicalComposition
    materialComposition:
      Steel: 50
  - type: Shakeable
  - type: ReactionMixer
    mixerType: None
    reactionTypes:
    - Shake

- type: entity
  parent: DrinkShaker
  id: DrinkShakerGold
  name: golden shaker
  description: A gold-plated shaker given as a token of appreciation for years of service. It doesn't make the drinks taste any different.
  components:
  - type: Sprite
    sprite: Objects/Consumable/Drinks/shaker_gold.rsi
  - type: Item
    sprite: Objects/Consumable/Drinks/shaker_gold.rsi
  - type: PhysicalComposition
    materialComposition:
      Gold: 10 # Gold plated, not solid gold
      Steel: 40

- type: entity
  parent: [DrinkBaseMaterialMetal, DrinkBase]
  id: DrinkJigger
  name: jigger
  description: Like a shaker, but smaller. Used to control the amount of ingredients.
  components:
  - type: Item
    size: Tiny
  - type: Solution
    solution:
      maxVol: 10 # Two shot glasses in size
  - type: SolutionTransfer
    canChangeTransferAmount: true
    minTransferAmount: 1
    maxTransferAmount: 20
  - type: FitsInDispenser
    solution: drink
  - type: ExaminableSolution
    heldOnly: true
    exactVolume: true
  - type: Sprite
    sprite: Objects/Consumable/Drinks/jigger.rsi
    state: icon
  - type: PhysicalComposition
    materialComposition:
      Steel: 20

- type: entity
  parent: [DrinkBaseMaterialStrongMetal, SolutionNormal, DrinkBase, DrinkVisualsFill]
  id: Pitcher
  name: metal pitcher
  description: A stainless steel insulated pitcher. Everyone's best friend in the morning.
  components:
  - type: Item
    size: Normal
  - type: Sprite
    sprite: Objects/Consumable/Drinks/pitcher.rsi
  - type: SolutionContainerVisuals
    maxFillLevels: 6
    inHandsMaxFillLevels: 2
  - type: FitsInDispenser
    solution: drink

# Weird empty shakes

- type: entity
  abstract: true
  parent: [DrinkBaseMaterialGlass, DrinkBase]
  id: DrinkShakeBase
  description: ''
  components:
  - type: ExaminableSolution
    solution: drink
  - type: FitsInDispenser
    solution: drink

- type: entity
  parent: DrinkShakeBase
  id: DrinkShakeBlue
  name: blue milkshake
  components:
  - type: Sprite
    sprite: Objects/Consumable/Drinks/shake-blue.rsi

- type: entity
  parent: DrinkShakeBase
  id: DrinkShakeEmpty
  name: shakeempty
  components:
  - type: Sprite
    sprite: Objects/Consumable/Drinks/shake-empty.rsi

- type: entity
  parent: DrinkShakeBase
  id: DrinkShakeMeat
  name: meat shake
  components:
  - type: Sprite
    sprite: Objects/Consumable/Drinks/shake-meat.rsi

- type: entity
  parent: DrinkShakeBase
  id: DrinkShakeRobo
  name: robo shake
  components:
  - type: Sprite
    sprite: Objects/Consumable/Drinks/shake-robo.rsi

- type: entity
  parent: DrinkShakeBase
  id: DrinkShakeWhite
  name: white shake
  components:
  - type: Sprite
    sprite: Objects/Consumable/Drinks/shake-white.rsi
