]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Add rehydratable mop bucket cube, refactor the rehydratable yml (#34586)
authorHrosts <35345601+Hrosts@users.noreply.github.com>
Mon, 21 Apr 2025 17:16:25 +0000 (21:16 +0400)
committerGitHub <noreply@github.com>
Mon, 21 Apr 2025 17:16:25 +0000 (13:16 -0400)
* Refactor rehydratable items

* Finish main refactor

* Add mop bucket cube

* Move cube sprite and item size to RehydratableAnimalCube

* Fix sprite attribution

* Make it follow the conventions

* Refactor wrapped cube, leave MonkeyCube tag only on the cube and the Syndie Sponge

* Fix DehydratedSpaceCarp inheritance overwriting needed components

* no need for this comment

* remove whitespace

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* indentation

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Restore lost description

* reorder stuff

* line

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Resources/Prototypes/Catalog/Fills/Crates/service.yml
Resources/Prototypes/Entities/Objects/Misc/monkeycube.yml
Resources/Prototypes/Entities/Objects/Specific/rehydrateable.yml
Resources/Prototypes/Entities/Structures/Specific/Janitor/janicart.yml
Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/meta.json
Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/mopbucket_cube.png [new file with mode: 0644]

index 32cfce4628ee819b41f6f1f9ddfc20ced72aebc9..202a0ebc298214bf6158f6b39749a883db6f71cb 100644 (file)
@@ -7,7 +7,7 @@
   - type: StorageFill
     contents:
       - id: MopItem
-      - id: MopBucket
+      - id: MopBucketCubeWrapped
       - id: Bucket
         amount: 3
       - id: WetFloorSign
index cf2dad1ce5888319e1a31a268b659cbe6487e833..9b95d15e69ce2847d0e83240cb827da55e256696 100644 (file)
 
 - type: entity
   parent: BaseItem
-  name: monkey cube
+  abstract: true
   suffix: Wrapped
-  id: MonkeyCubeWrapped
-  description: Unwrap this to get a monkey cube.
+  id: BaseWrappedCube
   components:
   - type: Item
     size: Tiny
   - type: SpawnItemsOnUse
-    items:
-      - id: MonkeyCube
     sound:
       path: /Audio/Effects/unwrap.ogg
   - type: Sprite
     sprite: Objects/Misc/monkeycube.rsi
+
+- type: entity
+  parent: BaseWrappedCube
+  name: monkey cube
+  id: MonkeyCubeWrapped
+  description: Unwrap this to get a monkey cube.
+  components:
+  - type: SpawnItemsOnUse
+    items:
+    - id: MonkeyCube
+  - type: Sprite
     state: wrapper
   - type: Tag
     tags:
     state: box_variant
 
 - type: entity
-  parent: MonkeyCubeWrapped
+  parent: BaseWrappedCube
   name: kobold cube
-  suffix: Wrapped
   id: KoboldCubeWrapped
   description: Unwrap this to get a kobold cube.
   components:
   - type: SpawnItemsOnUse
     items:
       - id: KoboldCube
-    sound:
-      path: /Audio/Effects/unwrap.ogg
   - type: Sprite
-    sprite: Objects/Misc/monkeycube.rsi
     state: wrapper_kobold
 
 - type: entity
   name: monkey cube
   suffix: Wrapped, Syndicate
   id: SyndicateSpongeWrapped
-  description: Unwrap this to get a monkey cube.
   components:
   - type: SpawnItemsOnUse
     items:
       - id: SyndicateSponge
-    sound:
-      path: /Audio/Effects/unwrap.ogg
-  - type: Sprite
-    sprite: Objects/Misc/monkeycube.rsi
-    state: wrapper
-  - type: Item
-    size: Tiny
-  - type: Tag
-    tags:
-    - MonkeyCube
index 26a0df1a0065b3e2e6cc8d10102b1143596a5e29..52a730f773f8292f0c16f25a2d99577b7ab6f5fb 100644 (file)
@@ -1,30 +1,16 @@
 - type: entity
   parent: BaseItem
-  id: MonkeyCube
-  name: monkey cube
-  description: Just add water!
+  id: RehydratableItem
+  abstract: true
   components:
   - type: Item
     size: Tiny
   - type: SolutionContainerManager
     solutions:
       cube:
-        maxVol: 11 # needs room for water
-        reagents:
-        - ReagentId: Nutriment
-          Quantity: 10
-  - type: Food
-    solution: cube
-  - type: FlavorProfile
-    flavors:
-    - chewy
-    - horrible
-    - compressed-meat
+        maxVol: 1 # needs room for water
   - type: RefillableSolution
     solution: cube
-  - type: Sprite
-    sprite: Objects/Misc/monkeycube.rsi
-    state: cube
   - type: Reactive
     reactions:
     - reagents: [Water]
@@ -33,8 +19,6 @@
       - !type:AddToSolutionReaction
         solution: cube
   - type: Rehydratable
-    possibleSpawns:
-    - MobMonkey
   - type: CollisionWake
     enabled: false
   - type: Fixtures
@@ -46,7 +30,7 @@
         density: 5
         mask:
         - ItemMask
-      rehydrate:
+      rehydrate: # needed to react to fire extinguishers
         shape:
           !type:PhysShapeAabb
           bounds: "-0.3,-0.3,0.3,0.3"
         - LowImpassable
 
 - type: entity
-  parent: MonkeyCube
+  parent: RehydratableItem
+  id: RehydratableAnimalCube
+  description: Just add water!
+  abstract: true
+  components:
+  - type: Sprite
+    sprite: Objects/Misc/monkeycube.rsi
+    state: cube
+  - type: SolutionContainerManager
+    solutions:
+      cube:
+        maxVol: 19 # needs 1u room for water
+        reagents: # equals one piece of raw meat, ideally should vary depending on the animal type, but idk how to link this to biomass costs
+        - ReagentId: UncookedAnimalProteins
+          Quantity: 9
+        - ReagentId: Fat
+          Quantity: 9
+  - type: Food
+    solution: cube
+  - type: FlavorProfile
+    flavors:
+    - chewy
+    - horrible
+    - compressed-meat
+  - type: Tag
+    tags:
+    - Meat
+
+- type: entity
+  parent: RehydratableAnimalCube
+  id: MonkeyCube
+  name: monkey cube
+  components:
+  - type: Rehydratable
+    possibleSpawns:
+    - MobMonkey
+  - type: Tag
+    tags:
+    - Meat
+    - MonkeyCube
+
+- type: entity
+  parent: RehydratableAnimalCube
   id: KoboldCube
   name: kobold cube
   components:
@@ -64,7 +90,7 @@
     - MobKobold
 
 - type: entity
-  parent: MonkeyCube
+  parent: RehydratableAnimalCube
   id: CowCube
   name: cow cube
   components:
@@ -73,7 +99,7 @@
     - MobCow
 
 - type: entity
-  parent: MonkeyCube
+  parent: RehydratableAnimalCube
   id: GoatCube
   name: goat cube
   components:
     - MobGoat
 
 - type: entity
-  parent: MonkeyCube
+  parent: RehydratableAnimalCube
   id: MothroachCube
   name: mothroach cube
   components:
     - MobMothroach
 
 - type: entity
-  parent: MonkeyCube
+  parent: RehydratableAnimalCube
   id: MouseCube
   name: mouse cube
   components:
     - MobMouse
 
 - type: entity
-  parent: MonkeyCube
+  parent: RehydratableAnimalCube
   id: CockroachCube
   name: cockroach cube
   description: Just add wa- OH GOD!
     - MobCockroach
 
 - type: entity
-  parent: MonkeyCube
+  parent: RehydratableAnimalCube
   id: SpaceCarpCube
   name: carp cube
   description: Just add water! At your own risk.
   components:
+  - type: SolutionContainerManager
+    solutions:
+      cube:
+        maxVol: 24 # needs 1u room for water
+        reagents: # equals one piece of raw meat - plus a deadly toxin!
+        - ReagentId: UncookedAnimalProteins
+          Quantity: 9
+        - ReagentId: Fat
+          Quantity: 9
+        - ReagentId: CarpoToxin
+          Quantity: 5
   - type: Rehydratable
     possibleSpawns:
     - MobCarp
 
 - type: entity
-  parent: MonkeyCube
+  parent: RehydratableAnimalCube
   id: SpaceTickCube
   name: tick cube
   description: Just add water! At your own risk.
     - MobTick
 
 - type: entity
-  parent: MonkeyCube
+  parent: RehydratableAnimalCube
   id: AbominationCube
   name: abomination cube
   description: Just add blood!
   components:
-  - type: SolutionContainerManager
-    solutions:
-      cube:
-        maxVol: 10 # needs room for more blood
-        reagents:
-        - ReagentId: Blood
-          Quantity: 9
   - type: Reactive
     reactions:
     - reagents: [Blood]
         solution: cube
   - type: Rehydratable
     catalyst: Blood # blood is fuel
-    catalystMinimum: 10
     possibleSpawns:
     - MobAbomination
 
+# It inherits FoodComponent from PlushieCarp, but is de-facto inedible
+# PlushieCarp has requiresSpecialDigestion:true, and this one is not whitelisted anywhere, so it behaves like it's not edible
 - type: entity
-  parent: [PlushieCarp, BaseSyndicateContraband]
+  parent: [PlushieCarp, RehydratableItem, BaseSyndicateContraband]
   id: DehydratedSpaceCarp
   name: dehydrated space carp
   description: Looks like a plush toy carp, but just add water and it becomes a real-life space carp!
   components:
   - type: SolutionContainerManager
     solutions:
-      plushie:
-        maxVol: 11 # needs room for water
-        reagents:
-        - ReagentId: Nutriment #contains nutriment like other dehydrated animals, but isn't edible? Who is grinding dehydrated carp to eat them??
-          Quantity: 10
-  - type: RefillableSolution
-    solution: plushie
-  - type: Reactive
-    reactions:
-    - reagents: [Water]
-      methods: [Touch, Ingestion, Injection]
-      effects:
-      - !type:AddToSolutionReaction
-        solution: plushie
-  - type: Rehydratable
-    possibleSpawns:
-    - MobCarp
-  - type: CollisionWake
-    enabled: false
-  - type: Physics
-    bodyType: KinematicController
-  - type: Fixtures
+      cube:
+        maxVol: 1 # needs room for water
+  - type: Fixtures # BaseItem from PlushieCarp overrides fixtures, making carp not react to extinguishers
     fixtures:
       fix1:
         shape:
           !type:PhysShapeAabb
           bounds: "-0.3,-0.3,0.3,0.3"
-        density: 15
+        density: 5
         mask:
         - ItemMask
-      rehydrate:
+      rehydrate: # needed to react to fire extinguishers
         shape:
           !type:PhysShapeAabb
           bounds: "-0.3,-0.3,0.3,0.3"
     successString: petting-success-dehydrated-carp
     failureString: petting-failure-dehydrated-carp
   - type: EmitSoundOnUse
-    handle: false
-    sound:
-      path: /Audio/Effects/bite.ogg
+    handle: false # have to make it inedible because this causes petting and chewing trigger together
+  - type: Rehydratable
+    possibleSpawns:
+    - MobCarp
+  - type: Tag # overwriting PlushieCarp tags to remove ClothMade and Payload
+    tags:
+    - PlushieCarp
 
-- type: entity #why is this all redefined down here as a parent of base object instead of just being parented to monkeycube?? TODO: Fix this shit
-  parent: BaseItem
+- type: entity
+  parent: MonkeyCube
   id: SyndicateSponge
-  name: monkey cube
   suffix: Syndicate
-  description: Just add water!
   components:
-  - type: Item
-    size: Tiny
-  - type: SolutionContainerManager
-    solutions:
-      cube:
-        maxVol: 11 # needs room for water
-        reagents:
-        - ReagentId: Nutriment
-          Quantity: 10
-  - type: Food
-    solution: cube
-  - type: FlavorProfile
-    flavors:
-    - chewy
-    - horrible
-    - compressed-meat
-  - type: RefillableSolution
-    solution: cube
-  - type: Sprite
-    sprite: Objects/Misc/monkeycube.rsi
-    state: cube
-  - type: Reactive
-    reactions:
-    - reagents: [Water]
-      methods: [Touch, Ingestion, Injection]
-      effects:
-      - !type:AddToSolutionReaction
-        solution: cube
   - type: Rehydratable
     possibleSpawns:
     - MobCarpHolo
     - MobPurpleSnake
     - MobKangarooSpace
     - MobTick
-  - type: CollisionWake
-    enabled: false
-  - type: Fixtures
-    fixtures:
-      fix1:
-        shape:
-          !type:PhysShapeAabb
-          bounds: "-0.3,-0.3,0.3,0.3"
-        density: 5
-        mask:
-        - ItemMask
-      rehydrate:
-        shape:
-          !type:PhysShapeAabb
-          bounds: "-0.3,-0.3,0.3,0.3"
-        hard: false
-        layer:
-        - LowImpassable
+
+- type: entity
+  parent: RehydratableItem
+  id: MopBucketCube
+  name: mop bucket cube
+  description: Just add water! And then more water!
+  components:
+  - type: Sprite
+    sprite: Objects/Specific/Janitorial/janitorial.rsi
+    state: mopbucket_cube
+  - type: Rehydratable
+    possibleSpawns:
+    - MopBucket
index d74fe8b0f1ba2e658144018467652fa547e279e4..c095951d96b9a5a5c771880d0da60f3a46d714db 100644 (file)
             - ReagentId: Water
               Quantity: 600
 
+- type: entity
+  parent: BaseWrappedCube
+  name: mop bucket cube
+  id: MopBucketCubeWrapped
+  description: Unwrap this to get a mop bucket cube.
+  components:
+  - type: SpawnItemsOnUse
+    items:
+    - id: MopBucketCube
+  - type: Sprite
+    state: wrapper
+
 # Janicart
 - type: entity
   name: janitorial trolley
index 4f7a1e7772225607bb88d43ac567320ea357eea2..e4604b165f3991d1897a973c90eb6a2023a59fdf 100644 (file)
@@ -1,7 +1,7 @@
 {
   "version": 1,
   "license": "CC-BY-SA-3.0",
-  "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428, mopbucket_shark_* by Psychpsyo, mopbucket_carpplush adapted by Psychpsyo from tgstation carpplush at commit https://github.com/tgstation/tgstation/commit/e1142f20f5e4661cb6845cfcf2dd69f864d67432",
+  "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/f8f4aeda930fcd0805ca4cc76d9bc9412a5b3428, mopbucket_shark_* by Psychpsyo, mopbucket_carpplush adapted by Psychpsyo from tgstation carpplush at commit https://github.com/tgstation/tgstation/commit/e1142f20f5e4661cb6845cfcf2dd69f864d67432, mopbucket_cube is monkey cube taken from cev-eris at https://github.com/discordia-space/CEV-Eris/raw/9c980cb9bc84d07b1c210c5447798af525185f80/icons/obj/food.dmi and modified by Hrosts",
   "size": {
     "x": 32,
     "y": 32
@@ -37,6 +37,9 @@
     {
       "name": "mopbucket_carpplush"
     },
+    {
+      "name": "mopbucket_cube"
+    },
     {
       "name": "inhand-left",
       "directions": 4
diff --git a/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/mopbucket_cube.png b/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/mopbucket_cube.png
new file mode 100644 (file)
index 0000000..7fba654
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Janitorial/janitorial.rsi/mopbucket_cube.png differ