]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
cups and metamorphic
authoriaada <iaada@users.noreply.github.com>
Fri, 25 Jul 2025 05:05:30 +0000 (00:05 -0500)
committeriaada <iaada@users.noreply.github.com>
Fri, 25 Jul 2025 05:05:30 +0000 (00:05 -0500)
Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml [new file with mode: 0644]
Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cans_empty.yml
Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_cups.yml
Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml [moved from Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks.yml with 92% similarity]

diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml b/Resources/Prototypes/Entities/Objects/Consumable/Drinks/base_drinks.yml
new file mode 100644 (file)
index 0000000..c812097
--- /dev/null
@@ -0,0 +1,186 @@
+# TODO: Find remaining cans and move to drinks_cans
+# TODO: Find empty containers (e.g. mug, pitcher) and move to their own yml
+
+# For cups, beakers, and other fully accessible solutions
+- type: entity
+  abstract: true
+  parent: BaseItem
+  id: DrinkBase
+  components:
+  - type: Sprite
+    state: icon
+  - type: MeleeWeapon
+    soundNoDamage:
+      path: "/Audio/Effects/Fluids/splat.ogg"
+    damage:
+      types:
+        Blunt: 0
+  - type: DnaSubstanceTrace
+  - type: Drink
+  - type: Spillable
+    solution: drink
+  - type: MixableSolution
+    solution: drink
+  - type: DrawableSolution
+    solution: drink
+  - type: RefillableSolution
+    solution: drink
+  - type: DrainableSolution
+    solution: drink
+  - type: SolutionContainerManager
+    solutions:
+      drink:
+        maxVol: 30
+  - type: SolutionTransfer
+    canChangeTransferAmount: true
+  - type: UserInterface
+    interfaces:
+      enum.TransferAmountUiKey.Key:
+        type: TransferAmountBoundUserInterface
+
+# A fragile, transparent glass cup
+- type: entity
+  abstract: true
+  parent: DrinkBase
+  id: DrinkGlassBase
+  components:
+  - type: Damageable
+    damageContainer: Inorganic
+    damageModifierSet: Glass
+  - type: Destructible
+    thresholds:
+    - trigger:
+        !type:DamageTrigger
+        damage: 5
+      behaviors:
+      - !type:PlaySoundBehavior
+        sound:
+          collection: GlassBreak
+      - !type:SpillBehavior { }
+      - !type:SpawnEntitiesBehavior
+        spawn:
+          ShardGlass:
+            min: 1
+            max: 1
+        transferForensics: true
+      - !type:DoActsBehavior
+        acts: [ "Destruction" ]
+  - type: DamageOnLand
+    ignoreResistances: true
+    damage:
+      types:
+        Blunt: 5
+  - type: DamageOtherOnHit
+    damage:
+      types:
+        Blunt: 5
+  - type: PhysicalComposition
+    materialComposition:
+      Glass: 25
+  - type: ExaminableSolution
+    solution: drink
+  - type: FitsInDispenser
+    solution: drink
+  - type: Tag
+    tags:
+    - DrinkGlass
+
+
+
+###
+# TODO: MOVE
+
+- type: entity
+  parent: DrinkGlassBase
+  id: DrinkTeapot
+  name: teapot  # short and stout
+  description: An elegant teapot. It simply oozes class.
+  components:
+  - type: SolutionContainerManager
+    solutions:
+      drink:
+        maxVol: 100
+        reagents:
+        - ReagentId: Tea
+          Quantity: 100
+  - type: Sprite
+    sprite: Objects/Consumable/Drinks/teapot.rsi
+
+- type: entity
+  name: coupe glass
+  description: A classic thin neck coupe glass, the icon of fragile labels on crates around the galaxy.
+  parent: DrinkGlassBase
+  id: DrinkGlassCoupeShaped
+  components:
+  - type: Sprite
+    sprite: Objects/Consumable/Drinks/glass_coupe_shape.rsi
+    layers:
+    - state: icon
+      map: [ "enum.SolutionContainerLayers.Base" ]
+    - state: fill1
+      map: [ "enum.SolutionContainerLayers.Fill" ]
+      visible: false
+    - state: icon-front
+      map: [ "enum.SolutionContainerLayers.Overlay" ]
+  - type: Appearance
+  - type: SolutionContainerManager
+    solutions:
+      drink:
+        maxVol: 30
+  - type: SolutionContainerVisuals
+    maxFillLevels: 5
+    fillBaseName: fill
+    inHandsMaxFillLevels: 1
+    inHandsFillBaseName: -fill-
+
+#
+
+- type: entity
+  parent: DrinkGlassBase
+  id: DrinkShakeBlue
+  name: blue milkshake
+  description: ''
+  components:
+  - type: Drink
+  - type: Sprite
+    sprite: Objects/Consumable/Drinks/shake-blue.rsi
+
+- type: entity
+  parent: DrinkGlassBase
+  id: DrinkShakeEmpty
+  name: shakeempty
+  description: ''
+  components:
+  - type: Drink
+  - type: Sprite
+    sprite: Objects/Consumable/Drinks/shake-empty.rsi
+
+- type: entity
+  parent: DrinkGlassBase
+  id: DrinkShakeMeat
+  name: meat shake
+  description: ''
+  components:
+  - type: Drink
+  - type: Sprite
+    sprite: Objects/Consumable/Drinks/shake-meat.rsi
+
+- type: entity
+  parent: DrinkGlassBase
+  id: DrinkShakeRobo
+  name: robo shake
+  description: ''
+  components:
+  - type: Drink
+  - type: Sprite
+    sprite: Objects/Consumable/Drinks/shake-robo.rsi
+
+- type: entity
+  parent: DrinkGlassBase
+  id: DrinkShakeWhite
+  name: white shake
+  description: ''
+  components:
+  - type: Drink
+  - type: Sprite
+    sprite: Objects/Consumable/Drinks/shake-white.rsi
index 69876527d4172972d6eb4d181f03797e15c13039..a10616aecb942dccd97972a611797b04185f5051 100644 (file)
   description: Sweetened drink with a grape flavor and a deep purple color.
 
 - type: entity
-  parent: [ DrinkCanBaseEmpty, DrinkGrapeCan ]
-  id: DrinkGrapeCanEmpty
-  name: grape soda can
-  description: Sweetened drink with a grape flavor and a deep purple color.
+  parent: [ DrinkCanBaseEmpty, DrinkRootBeerCan ]
+  id: DrinkRootBeerCanEmpty
+  name: root beer can
+  description: Some of that tasty root beer goodness, now in a portable can!
   components:
   - type: Tag
     tags:
index 842cf13641f3c2d5ec0d7ad521c358171e1a2250..9ccadd77f784f529d7cdf8994c463091bcfa42ed 100644 (file)
@@ -1,10 +1,10 @@
 # Empty drink containers; different from bottles in that these are intended to be spawned empty
 # When adding new drinks also add to random spawner located in Resources\Prototypes\Entities\Markers\Spawners\Random\Food_Drinks\drinks_soda.yml
 - type: entity
+  abstract: true
   parent: BaseItem
   id: DrinkBaseCup
   name: base cup
-  abstract: true
   components:
   - type: SolutionContainerManager
     solutions:
     tags:
     - DrinkCup
 
+- type: entity
+  abstract: true
+  parent: DrinkBaseCup
+  id: DrinkBaseMug
+  name: mug
+  description: A mug.
+  components:
+  - type: Sprite
+    sprite: Objects/Consumable/Drinks/mug.rsi
+    layers:
+      - state: icon-0
+      - map: ["enum.SolutionContainerLayers.Fill"]
+        state: icon-3
+        visible: false
+  - type: Appearance
+  - type: SolutionContainerVisuals
+    maxFillLevels: 3
+    fillBaseName: icon-
+  - type: PhysicalComposition
+    materialComposition:
+      Glass: 25
+
+##
+
+# Misc Cups
 - type: entity
   parent: DrinkBaseCup
   id: DrinkGoldenCup
 
 - type: entity
   parent: DrinkBaseCup
-  id: DrinkBaseMug
-  abstract: true
-  name: mug
-  description: A mug.
+  id: DrinkWaterCup
+  name: water cup
+  description: A paper water cup.
   components:
   - type: Sprite
-    sprite: Objects/Consumable/Drinks/mug.rsi
+    sprite: Objects/Consumable/Drinks/water_cup.rsi
     layers:
-      - state: icon-0
-      - map: ["enum.SolutionContainerLayers.Fill"]
-        state: icon-3
-        visible: false
+    - state: icon-0
+    - map: ["enum.SolutionContainerLayers.Fill"]
+      state: icon-1
   - type: Appearance
   - type: SolutionContainerVisuals
-    maxFillLevels: 3
+    maxFillLevels: 1
     fillBaseName: icon-
-  - type: PhysicalComposition
-    materialComposition:
-      Glass: 25
+  - type: Tag
+    tags:
+    - Trash
+    - WhitelistChameleon
+  - type: TrashOnSolutionEmpty
+    solution: drink
+  - type: Clothing
+    slots:
+    - HEAD
+    quickEquip: false
+    sprite: Clothing/Head/Hats/party_water_cup.rsi
 
+# Mugs
 - type: entity
   parent: DrinkBaseMug
   id: DrinkMug
   - type: Sprite
     sprite: Objects/Consumable/Drinks/mug_red.rsi
 
+# Filled
 - type: entity
   parent: DrinkBaseCup
   id: DrinkHotCoco
     sprite: Objects/Consumable/Drinks/lean.rsi
   - type: TrashOnSolutionEmpty
     solution: drink
-
-- type: entity
-  parent: DrinkBaseCup
-  id: DrinkWaterCup
-  name: water cup
-  description: A paper water cup.
-  components:
-  - type: Drink
-  - type: Sprite
-    sprite: Objects/Consumable/Drinks/water_cup.rsi
-    layers:
-      - state: icon-0
-      - map: ["enum.SolutionContainerLayers.Fill"]
-        state: icon-1
-  - type: Appearance
-  - type: SolutionContainerVisuals
-    maxFillLevels: 1
-    fillBaseName: icon-
-  - type: Tag
-    tags:
-    - Trash
-    - WhitelistChameleon
-  - type: TrashOnSolutionEmpty
-    solution: drink
-  - type: Clothing
-    slots:
-    - HEAD
-    quickEquip: false
-    sprite: Clothing/Head/Hats/party_water_cup.rsi
similarity index 92%
rename from Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks.yml
rename to Resources/Prototypes/Entities/Objects/Consumable/Drinks/drinks_metamorphic.yml
index aff0aa7a05d4255e0975abc5df0411f0767de8b0..a5463757e67e76ca0b1d56534a60e9aeab372ad0 100644 (file)
@@ -1,87 +1,6 @@
-# TODO: Find remaining cans and move to drinks_cans
-# TODO: Find empty containers (e.g. mug, pitcher) and move to their own yml
+# File for the metamorphic glass and pre-filled metamorph glass
+# TODO Autogenerate prototypes so this file isn't 1000s of lines
 # When adding new drinks also add to random spawner located in Resources\Prototypes\Entities\Markers\Spawners\Random\Food_Drinks\drinks_glass.yml
-- type: entity
-  parent: BaseItem
-  id: DrinkBase
-  abstract: true
-  components:
-  - type: SolutionContainerManager
-    solutions:
-      drink:
-        maxVol: 30
-  - type: MixableSolution
-    solution: drink
-  - type: SolutionTransfer
-    canChangeTransferAmount: true
-  - type: Drink
-  - type: Sprite
-    state: icon
-  - type: MeleeWeapon
-    soundNoDamage:
-      path: "/Audio/Effects/Fluids/splat.ogg"
-    damage:
-      types:
-        Blunt: 0
-  - type: Spillable
-    solution: drink
-  - type: DrawableSolution
-    solution: drink
-  - type: RefillableSolution
-    solution: drink
-  - type: DrainableSolution
-    solution: drink
-  - type: UserInterface
-    interfaces:
-      enum.TransferAmountUiKey.Key:
-        type: TransferAmountBoundUserInterface
-  - type: DnaSubstanceTrace
-
-- type: entity
-  parent: DrinkBase
-  id: DrinkGlassBase
-  abstract: true
-  components:
-  - type: Damageable
-    damageContainer: Inorganic
-    damageModifierSet: Glass
-  - type: Destructible
-    thresholds:
-    - trigger:
-        !type:DamageTrigger
-        damage: 5
-      behaviors:
-      - !type:PlaySoundBehavior
-        sound:
-          collection: GlassBreak
-      - !type:SpillBehavior { }
-      - !type:SpawnEntitiesBehavior
-        spawn:
-          ShardGlass:
-            min: 1
-            max: 1
-        transferForensics: true
-      - !type:DoActsBehavior
-        acts: [ "Destruction" ]
-  - type: DamageOnLand
-    ignoreResistances: true
-    damage:
-      types:
-        Blunt: 5
-  - type: DamageOtherOnHit
-    damage:
-      types:
-        Blunt: 5
-  - type: PhysicalComposition
-    materialComposition:
-      Glass: 25
-  - type: ExaminableSolution
-    solution: drink
-  - type: FitsInDispenser
-    solution: drink
-  - type: Tag
-    tags:
-      - DrinkGlass
 
 # Transformable container - normal glass
 - type: entity
       state: icon
   - type: TransformableContainer
 
-- type: entity
-  name: coupe glass
-  description: A classic thin neck coupe glass, the icon of fragile labels on crates around the galaxy.
-  parent: DrinkGlassBase
-  id: DrinkGlassCoupeShaped
-  components:
-    - type: Sprite
-      sprite: Objects/Consumable/Drinks/glass_coupe_shape.rsi
-      layers:
-        - state: icon
-          map: [ "enum.SolutionContainerLayers.Base" ]
-        - state: fill1
-          map: [ "enum.SolutionContainerLayers.Fill" ]
-          visible: false
-        - state: icon-front
-          map: [ "enum.SolutionContainerLayers.Overlay" ]
-    - type: Appearance
-    - type: SolutionContainerManager
-      solutions:
-        drink:
-          maxVol: 30
-    - type: SolutionContainerVisuals
-      maxFillLevels: 5
-      fillBaseName: fill
-      inHandsMaxFillLevels: 1
-      inHandsFillBaseName: -fill-
+# Reagent fills
 
 - type: entity
   parent: DrinkGlass
   - type: SolutionContainerManager
     solutions:
       drink:
-        maxVol: 20
+        maxVol: 30
         reagents:
         - ReagentId: Absinthe
-          Quantity: 20
+          Quantity: 30
   - type: Icon
     sprite: Objects/Consumable/Drinks/absintheglass.rsi
     state: icon
   - type: Icon
     sprite: Objects/Consumable/Drinks/beerglass.rsi
     state: icon
-  - type: Tag
-    tags:
-    - Beer
 
 - type: entity
   parent: DrinkGlass
   - type: Icon
     sprite: Objects/Consumable/Drinks/iced_beerglass.rsi
     state: icon
-  - type: Tag
-    tags:
-    - Beer
 
 - type: entity
   parent: DrinkGlass
     sprite: Objects/Consumable/Drinks/kiraspecial.rsi
     state: icon
 
-
 - type: entity
   parent: DrinkGlass
   id: DrinkLemonadeGlass
     sprite: Objects/Consumable/Drinks/teaglass.rsi
     state: icon
 
-- type: entity
-  parent: DrinkGlassBase
-  id: DrinkTeapot
-  name: teapot  # short and stout
-  description: An elegant teapot. It simply oozes class.
-  components:
-  - type: SolutionContainerManager
-    solutions:
-      drink:
-        maxVol: 100
-        reagents:
-        - ReagentId: Tea
-          Quantity: 100
-  - type: Sprite
-    sprite: Objects/Consumable/Drinks/teapot.rsi
-
 - type: entity
   parent: DrinkGlass
   id: DrinkTequilaGlass
     sprite: Objects/Consumable/Drinks/whiskeysour.rsi
     state: icon
 
-# TODO: MOVE
-
-- type: entity
-  parent: DrinkGlassBase
-  id: DrinkShakeBlue
-  name: blue milkshake
-  description: ''
-  components:
-  - type: Drink
-  - type: Sprite
-    sprite: Objects/Consumable/Drinks/shake-blue.rsi
-
-- type: entity
-  parent: DrinkGlassBase
-  id: DrinkShakeEmpty
-  name: shakeempty
-  description: ''
-  components:
-  - type: Drink
-  - type: Sprite
-    sprite: Objects/Consumable/Drinks/shake-empty.rsi
-
-- type: entity
-  parent: DrinkGlassBase
-  id: DrinkShakeMeat
-  name: meat shake
-  description: ''
-  components:
-  - type: Drink
-  - type: Sprite
-    sprite: Objects/Consumable/Drinks/shake-meat.rsi
-
-- type: entity
-  parent: DrinkGlassBase
-  id: DrinkShakeRobo
-  name: robo shake
-  description: ''
-  components:
-  - type: Drink
-  - type: Sprite
-    sprite: Objects/Consumable/Drinks/shake-robo.rsi
-
-- type: entity
-  parent: DrinkGlassBase
-  id: DrinkShakeWhite
-  name: white shake
-  description: ''
-  components:
-  - type: Drink
-  - type: Sprite
-    sprite: Objects/Consumable/Drinks/shake-white.rsi
-
 - type: entity
   parent: DrinkGlass
   id: DrinkBloodGlass