]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
update for #39362 and #39363
authoriaada <iaada@users.noreply.github.com>
Tue, 5 Aug 2025 23:14:09 +0000 (18:14 -0500)
committeriaada <iaada@users.noreply.github.com>
Tue, 5 Aug 2025 23:14:09 +0000 (18:14 -0500)
Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_base.yml
Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml
Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_fun.yml
Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml
Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_special.yml

index 0cd822bff49036682a743c02b8e7b3b6f25ef8ee..4fedc365521c8540cf7cf1ead0b8d8d8fadae464 100644 (file)
@@ -1,6 +1,6 @@
 # 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
index b4687d081f091453f9cf900265be57fafd4cead9..e1fe78c4330c895ed4e96e6b267b3f8413a44b4f 100644 (file)
   - 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
index 5e670117d7ccbcfac8f01b51fe3c4c3a399fa942..eb10493467d067886222aee75620c2d9bb485812 100644 (file)
@@ -1,56 +1,60 @@
 - 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
index a712fe45f35c21cb73acf4b914363defe63d236e..22054741e3b4a1e275ee27fab0757307e9578015 100644 (file)
     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
index fb0e1141065a4c271c5764be673195e8ec40b084..27d568eb82a0b51def0306e5ef7d10ae42c7e31f 100644 (file)
         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]