# When adding new drinks also add to random spawner located in Resources\Prototypes\Entities\Markers\Spawners\Random\Food_Drinks\
-# A drink is an easily and freely accessible solution like cups, teapots, cans, flasks, bottles, or beakers.
+# Inheritors are an easily and freely accessible solution like cups, teapots, cans, flasks, bottles, or beakers.
- type: entity
abstract: true
parent: BaseItem
solution: drink
- type: DrainableSolution
solution: drink
- - type: InjectableSolution # Injectors (syringe) will fallback to RefillableSolution. This adds support for hyposprays and injector anomalies.
+ - type: InjectableSolution # Injectors (syringe) will fallback to RefillableSolution. This adds support for hyposprays and liquid anomalies.
+ solution: drink
+ - type: ExaminableSolution
+ solution: drink
+ - type: SolutionItemStatus
solution: drink
-# - type: SolutionItemStatus todo Currently always shows the reagent count. Should show vague fill levels without ExaminableSolution
-# solution: drink
- type: SolutionContainerManager
solutions:
drink:
layers:
- state: icon
map: ["enum.OpenableVisuals.Layer"]
+ - type: ExaminableSolution
+ opaque: true # If you can't see the fill levels on the sprite, we can assume it's opaque
+ heldOnly: true # If it's opaque, you probably can't see through the open lid from a distance
# Basic visualizer for an entity with fill levels
- type: entity
fillBaseName: fill-
inHandsMaxFillLevels: 3
inHandsFillBaseName: -fill-
- - type: ExaminableSolution # If you can see the fill levels, you can see the unit count
- solution: drink
- - type: SolutionItemStatus # Remove when comp is uncommented on DrinkBase
- solution: drink
# Layered visualizer for an entity with fill levels
- type: entity
- state: fill-1
map: ["enum.SolutionContainerLayers.Fill"]
visible: false
+ - type: ExaminableSolution
+ opaque: false # If you can see the fill levels it's not opaque
+ heldOnly: false
# Visualizer for an openable entity with fill levels, already filled
- type: entity
- type: SolutionContainerVisuals
maxFillLevels: 3
fillBaseName: icon-
- - type: ExaminableSolution # If you can see the fill levels, you can see the unit count
- solution: drink
- - type: SolutionItemStatus # Remove when comp is uncommented on DrinkBase or DrinkVisualsFill is added as a base
- solution: drink
## Misc Cups
- DrinkCup
- WhitelistChameleon
- type: Appearance
- - type: ExaminableSolution # If you can see the fill levels, you can see the unit count
- solution: drink
- type: TrashOnSolutionEmpty
solution: drink
- type: Clothing
- HEAD
quickEquip: false
sprite: Clothing/Head/Hats/party_water_cup.rsi
- - type: SolutionItemStatus # Remove when comp is uncommented on DrinkBase or DrinkVisualsFill is added as a base
- solution: drink
# Mugs
- type: entity
- type: entity
+ abstract: true
parent: [ DrinkBaseMaterialPlastic, DrinkBase, DrinkBaseOpenable, DrinkVisualsOpenable ] # todo Should use DrinkVisualAll, but sprite has no inhand
- id: DrinkSpaceGlue
- name: space glue tube
- description: High performance glue intended for maintenance of extremely complex mechanical equipment. DON'T DRINK!
+ id: BaseSqueezeBottle
components:
- type: Openable
sound:
collection: packetOpenSounds
- type: Sprite
- sprite: Objects/Consumable/Drinks/glue-tube.rsi
layers:
- - state: icon
- map: ["enum.OpenableVisuals.Layer"]
- - state: fill6
- map: [ "enum.SolutionContainerLayers.Fill" ] # already has liquid, so no visible: false
- - state: icon-front
- map: [ "enum.SolutionContainerLayers.Overlay" ]
- - type: Glue
+ - state: icon
+ map: ["enum.OpenableVisuals.Layer"]
+ - state: fill6
+ map: [ "enum.SolutionContainerLayers.Fill" ] # already has liquid, so no visible: false
+ - state: icon-front
+ map: [ "enum.SolutionContainerLayers.Overlay" ]
- type: SolutionContainerManager
solutions:
drink:
maxVol: 30
- reagents:
- - ReagentId: SpaceGlue
- Quantity: 30
- type: SolutionContainerVisuals
maxFillLevels: 6
fillBaseName: fill
+ - type: TrashOnSolutionEmpty
+ solution: drink
+ - type: ExaminableSolution # Remove when DrinkVisualAll is added
+ opaque: false
+ heldOnly: false
+
+- type: entity
+ parent: BaseSqueezeBottle
+ id: DrinkSpaceGlue
+ name: space glue tube
+ description: High performance glue intended for maintenance of extremely complex mechanical equipment. DON'T DRINK!
+ components:
+ - type: Sprite
+ sprite: Objects/Consumable/Drinks/glue-tube.rsi
+ - type: SolutionContainerManager
+ solutions:
+ drink:
+ maxVol: 30
+ reagents:
+ - ReagentId: SpaceGlue
+ Quantity: 30
- type: Tag
tags:
- DrinkSpaceGlue
- - type: TrashOnSolutionEmpty
- solution: drink
+ - type: Glue
- type: entity
- parent: [ DrinkBaseMaterialPlastic, DrinkBase, DrinkBaseOpenable, DrinkVisualsOpenable ] # Should use DrinkVisualAll, but sprite has no inhand
+ parent: BaseSqueezeBottle
id: DrinkSpaceLube
name: space lube tube
description: High performance lubricant intended for maintenance of extremely complex mechanical equipment.
components:
- - type: Openable
- sound:
- collection: packetOpenSounds
- type: Sprite
sprite: Objects/Consumable/Drinks/lube-tube.rsi
- layers:
- - state: icon
- map: ["enum.OpenableVisuals.Layer"]
- - state: fill6
- map: [ "enum.SolutionContainerLayers.Fill" ] # already has liquid, so no visible: false
- - state: icon-front
- map: [ "enum.SolutionContainerLayers.Overlay" ]
- type: SolutionContainerManager
solutions:
drink:
reagents:
- ReagentId: SpaceLube
Quantity: 30
- - type: SolutionContainerVisuals
- maxFillLevels: 6
- fillBaseName: fill
- type: Lube
- - type: TrashOnSolutionEmpty
- solution: drink
# Find your nearest clown and give them a gift :o)
- type: entity
metamorphicDefaultSprite:
sprite: Objects/Consumable/Drinks/glass_clear.rsi
state: icon
- - type: ExaminableSolution
- solution: drink
- type: Tag
tags:
- DrinkCup # Do these tags
- DrinkGlass # even do anything?
- type: TransformableContainer
- - type: SolutionItemStatus # Remove when comp is uncommented on DrinkBase or DrinkVisualsFillOverlay is added
- solution: drink
- type: entity
parent: DrinkGlass
maxVol: 100
- type: FitsInDispenser
solution: drink
+ - type: ExaminableSolution
+ heldOnly: true
+ exactVolume: true
- type: Sprite
sprite: Objects/Consumable/Drinks/shaker.rsi
state: icon
mixOnInteract: false
reactionTypes:
- Shake
- - type: SolutionItemStatus # Remove when comp is uncommented on DrinkBase
- solution: drink
- type: entity
parent: [DrinkBaseMaterialMetal, DrinkBase]
solutions:
drink:
maxVol: 20 # might be too much
- - type: Item
- size: Tiny
- 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: SolutionItemStatus # Remove when comp is uncommented on DrinkBase
- solution: drink
- type: entity
parent: [DrinkBaseMaterialStrongMetal, DrinkBase, DrinkVisualsFill]