]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Gives all wheeled objects low friction (#26601)
authorFlareguy <78941145+Flareguy@users.noreply.github.com>
Mon, 1 Apr 2024 03:23:59 +0000 (22:23 -0500)
committerGitHub <noreply@github.com>
Mon, 1 Apr 2024 03:23:59 +0000 (20:23 -0700)
* gives all wheeled objects friction

* adjustments to sum stuff

Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml
Resources/Prototypes/Entities/Structures/Machines/nuke.yml [moved from Resources/Prototypes/Entities/Objects/Devices/nuke.yml with 95% similarity]
Resources/Prototypes/Entities/Structures/Piping/Atmospherics/portable.yml
Resources/Prototypes/Entities/Structures/Power/Generation/portable_generator.yml
Resources/Prototypes/Entities/Structures/Specific/Janitor/drain.yml [new file with mode: 0644]
Resources/Prototypes/Entities/Structures/Specific/Janitor/janicart.yml [new file with mode: 0644]
Resources/Prototypes/Entities/Structures/Storage/Crates/crates.yml
Resources/Prototypes/Entities/Structures/Storage/Tanks/base_structuretanks.yml
Resources/Prototypes/Entities/Structures/Storage/Tanks/tanks.yml
Resources/Prototypes/Entities/Structures/base_structure.yml

index cad2d9a924512ead4b08a63dfb242f16ad54d5a4..b192401c8b85a51490cb022327123915f2cc9b89 100644 (file)
         - Mop
         - MopAdv
 
-- type: entity
-  name: mop bucket
-  id: MopBucket
-  description: Holds water and the tears of the janitor.
-  components:
-  - type: Clickable
-  - type: Sprite
-    sprite: Objects/Specific/Janitorial/janitorial.rsi
-    noRot: true
-    layers:
-    - state: mopbucket
-    - state: mopbucket_water-1
-      map: ["enum.SolutionContainerLayers.Fill"]
-      visible: false
-    drawdepth: Objects
-  - type: InteractionOutline
-  - type: SolutionContainerManager
-    solutions:
-      bucket:
-        maxVol: 600
-  - type: Spillable
-    solution: bucket
-    spillDelay: 3.0
-  - type: DrainableSolution
-    solution: bucket
-  - type: RefillableSolution
-    solution: bucket
-  - type: ExaminableSolution
-    solution: bucket
-  - type: Tag
-    tags:
-      - Wringer
-  - type: ItemMapper
-    mapLayers:
-      mopbucket_shark_blue:
-        whitelist:
-          tags:
-            - PlushieSharkBlue
-      mopbucket_shark_pink:
-        whitelist:
-          tags:
-            - PlushieSharkPink
-      mopbucket_shark_grey:
-        whitelist:
-          tags:
-            - PlushieSharkGrey
-    sprite: Objects/Fun/sharkplush.rsi
-  - type: Physics
-    bodyType: Dynamic
-  - type: Transform
-    noRot: true
-  - type: ItemSlots
-    slots:
-      shark_slot:
-        name: mop-bucket-slot-component-slot-name-shark
-        whitelist:
-          tags:
-            - PlushieSharkBlue
-            - PlushieSharkPink
-            - PlushieSharkGrey
-        priority: 3 # Higher than drinking priority
-  - type: Fixtures
-    fixtures:
-      fix1:
-        shape:
-          !type:PhysShapeAabb
-          bounds: "-0.25,-0.40,0.25,0.25"
-        density: 60
-        mask:
-        - MobMask
-        layer:
-        - MobLayer
-  - type: Pullable
-  - type: Drink
-    solution: bucket
-  - type: Appearance
-  - type: SolutionContainerVisuals
-    maxFillLevels: 3
-    fillBaseName: mopbucket_water-
-  - type: ContainerContainer
-    containers:
-      storagebase: !type:Container
-        ents: []
-      shark_slot: !type:ContainerSlot {}
-  - type: GuideHelp
-    guides:
-    - Janitorial
-  - type: Damageable
-    damageContainer: Inorganic
-  - type: Destructible
-    thresholds:
-    - trigger:
-        !type:DamageTrigger
-        damage: 70
-      behaviors:
-      - !type:DoActsBehavior
-        acts: ["Destruction"]
-
-- type: entity
-  name: mop bucket
-  id: MopBucketFull
-  parent: MopBucket
-  suffix: full
-  components:
-    - type: Sprite
-      layers:
-        - state: mopbucket
-        - state: mopbucket_water-3
-          map: [ "enum.SolutionContainerLayers.Fill" ]
-    - type: SolutionContainerManager
-      solutions:
-        bucket:
-          maxVol: 600
-          reagents:
-            - ReagentId: Water
-              Quantity: 600
-
 - type: entity
   name: wet floor sign
   id: WetFloorSign
     tags: # ignore "WhitelistChameleon" tag
       - WetFloorSign
 
-- type: entity
-  name: janitorial trolley
-  id: JanitorialTrolley
-  parent: BaseStructureDynamic
-  description: This is the alpha and omega of sanitation.
-  components:
-    - type: Sprite
-      noRot: true
-      sprite: Objects/Specific/Janitorial/janitorial_cart.rsi
-      layers:
-        - state: cart
-        - state: cart_water-1
-          map: ["enum.SolutionContainerLayers.Fill"]
-          visible: false
-    - type: Rotatable
-    - type: InteractionOutline
-    # Removing storage until OnInteractUsing logic resolved
-    #- type: Storage
-    #  popup: false
-    #  capacity: 80
-    #  blacklist: # there is exclusive item slots for that
-    #    tags:
-    #      - Mop
-    #      - TrashBag
-    #      - Bucket
-    - type: ItemSlots
-      slots:
-        mop_slot:
-          name: janitorial-trolley-slot-component-slot-name-mop
-          whitelist:
-            tags:
-              - Mop
-          insertOnInteract: false # or it conflicts with bucket logic
-          priority: 9 # Higher than bucket slot
-        plunger_slot:
-          name: janitorial-trolley-slot-component-slot-name-plunger
-          whitelist:
-            tags:
-              - Plunger
-          priority: 8
-        wetfloorsign_slot4:
-          name: janitorial-trolley-slot-component-slot-name-sign
-          whitelist:
-            tags:
-              - WetFloorSign
-          priority: 7
-        wetfloorsign_slot3:
-          name: janitorial-trolley-slot-component-slot-name-sign
-          whitelist:
-            tags:
-              - WetFloorSign
-          priority: 7
-        wetfloorsign_slot2:
-          name: janitorial-trolley-slot-component-slot-name-sign
-          whitelist:
-            tags:
-              - WetFloorSign
-          priority: 7
-        wetfloorsign_slot1:
-          name: janitorial-trolley-slot-component-slot-name-sign
-          whitelist:
-            tags:
-              - WetFloorSign
-          priority: 7
-        lightreplacer_slot:
-          name: janitorial-trolley-slot-component-slot-name-lightreplacer
-          whitelist:
-            components:
-              - LightReplacer
-          priority: 6
-        spraybottle_slot:
-          name: janitorial-trolley-slot-component-slot-name-spray
-          whitelist:
-            tags:
-              - Spray
-          insertOnInteract: false # or it conflicts with bucket logic
-          priority: 5 # Higher than bucket slot
-        bucket_slot:
-          name: janitorial-trolley-slot-component-slot-name-bucket
-          whitelist:
-            tags:
-              - Bucket
-          insertOnInteract: false # or it also conflicts with bucket logic
-          priority: 4 # Higher than trash bag slot
-        trashbag_slot:
-          name: janitorial-trolley-slot-component-slot-name-trashbag
-          whitelist:
-            tags:
-              - TrashBag
-          priority: 3 # Higher than drinking priority
-    - type: Fixtures
-      fixtures:
-        fix1:
-          shape:
-            !type:PhysShapeCircle
-            radius: 0.3
-          density: 250
-          layer:
-          - MobLayer
-          mask:
-          - MobMask
-    - type: Spillable
-      solution: bucket
-      spillDelay: 3.0
-    - type: SolutionContainerManager
-      solutions:
-        bucket:
-          maxVol: 800
-          reagents:
-            - ReagentId: Water
-              Quantity: 600 # 3 quarters full at roundstart to make it more appealing
-    - type: DrainableSolution
-      solution: bucket
-    - type: RefillableSolution
-      solution: bucket
-    - type: ExaminableSolution
-      solution: bucket
-    - type: Tag
-      tags:
-        - Wringer
-    - type: Damageable
-      damageContainer: Inorganic
-      damageModifierSet: Metallic
-    - type: Destructible
-      thresholds:
-        - trigger:
-            !type:DamageTrigger
-            damage: 400
-          behaviors:
-            - !type:DoActsBehavior
-              acts: [ "Destruction" ]
-        - trigger:
-            !type:DamageTrigger
-            damage: 200
-          behaviors:
-            - !type:EmptyAllContainersBehaviour
-            - !type:DoActsBehavior
-              acts: ["Destruction"]
-            - !type:PlaySoundBehavior
-              sound:
-                collection: MetalBreak
-    - type: ItemMapper
-      mapLayers:
-        cart_plunger:
-          whitelist:
-            tags:
-              - Plunger
-        cart_mop:
-          whitelist:
-            tags:
-              - MopBasic
-        cart_advmop:
-          whitelist:
-            tags:
-              - MopAdv
-        cart_garbage:
-          whitelist:
-            tags:
-              - TrashBag
-        cart_replacer:
-          whitelist:
-            components:
-              - LightReplacer
-        cart_spray:
-          whitelist:
-            tags:
-              - Spray
-        cart_sign1: # this is like stack of floor signs
-          minCount: 1
-          whitelist:
-            tags:
-              - WetFloorSign
-        cart_sign2:
-          minCount: 2
-          whitelist:
-            tags:
-              - WetFloorSign
-        cart_sign3:
-          minCount: 3
-          whitelist:
-            tags:
-              - WetFloorSign
-        cart_sign4:
-          minCount: 4
-          whitelist:
-            tags:
-              - WetFloorSign
-        cart_bucket:
-          whitelist:
-            tags:
-              - Bucket
-      sprite: Objects/Specific/Janitorial/janitorial_cart.rsi
-    - type: Appearance
-    - type: SolutionContainerVisuals
-      maxFillLevels: 3
-      fillBaseName: cart_water-
-    - type: UserInterface
-      interfaces:
-      - key: enum.StorageUiKey.Key
-        type: StorageBoundUserInterface
-    - type: Drink
-      solution: bucket
-    - type: ContainerContainer
-      containers:
-        storagebase: !type:Container
-          ents: []
-        mop_slot: !type:ContainerSlot {}
-        trashbag_slot: !type:ContainerSlot {}
-        bucket_slot: !type:ContainerSlot {}
-        plunger_slot: !type:ContainerSlot {}
-        wetfloorsign_slot4: !type:ContainerSlot {}
-        wetfloorsign_slot3: !type:ContainerSlot {}
-        wetfloorsign_slot2: !type:ContainerSlot {}
-        wetfloorsign_slot1: !type:ContainerSlot {}
-        lightreplacer_slot: !type:ContainerSlot {}
-        spraybottle_slot:  !type:ContainerSlot {}
-    - type: GuideHelp
-      guides:
-      - Janitorial
-    - type: TileFrictionModifier
-      modifier: 0.4 # makes it slide
-
-- type: entity
-  id: FloorDrain
-  name: drain
-  description: Drains puddles around it. Useful for dumping mop buckets or keeping certain rooms clean.
-  placement:
-    mode: SnapgridCenter
-  components:
-    - type: Sprite
-      drawdepth: FloorObjects
-      sprite: Objects/Specific/Janitorial/drain.rsi
-      layers:
-      - state: icon
-      - map: [ "enum.SolutionContainerLayers.Fill" ]
-        state: fill-1
-        visible: false
-    - type: InteractionOutline
-    - type: Clickable
-    - type: Transform
-      anchored: true
-    - type: Physics
-      bodyType: Static
-      canCollide: false
-    - type: AmbientSound
-      enabled: false
-      volume: -8
-      range: 8
-      sound:
-        path: /Audio/Ambience/Objects/drain.ogg
-    - type: Drain
-    - type: DumpableSolution
-      solution: drainBuffer
-    - type: Appearance
-    - type: SolutionContainerVisuals
-      maxFillLevels: 1
-      fillBaseName: fill-
-      solutionName: drainBuffer
-    - type: SolutionContainerManager
-      solutions:
-        drainBuffer:
-          maxVol: 1000
-    - type: DrainableSolution
-      solution: drainBuffer
-    - type: Damageable
-      damageContainer: Inorganic
-      damageModifierSet: Metallic
-    - type: Destructible
-      thresholds:
-        - trigger:
-            !type:DamageTrigger
-            damage: 200
-          behaviors:
-            - !type:DoActsBehavior
-              acts: [ "Destruction" ]
-        - trigger:
-            !type:DamageTrigger
-            damage: 100
-          behaviors:
-            - !type:DoActsBehavior
-              acts: [ "Destruction" ]
-            - !type:PlaySoundBehavior
-              sound:
-                collection: MetalBreak
-
 - type: entity
   name: plunger
   id: Plunger
similarity index 95%
rename from Resources/Prototypes/Entities/Objects/Devices/nuke.yml
rename to Resources/Prototypes/Entities/Structures/Machines/nuke.yml
index 811210d429e78b6a7ad4267bd2a0ce35195675d7..f37c42e4745cf59553e36e0a2693ac10f33e8122 100644 (file)
@@ -1,5 +1,5 @@
 - type: entity
-  parent: BaseStructure
+  parent: [BaseStructure, StructureWheeled]
   id: NuclearBomb
   name: nuclear fission explosive
   description: You probably shouldn't stick around to see if this is armed.
@@ -49,7 +49,7 @@
         shape:
           !type:PhysShapeCircle
           radius: 0.45
-        density: 80 #It has wheels and bluespace tech to make it lighter.
+        density: 255 # Has "bluespace technology" to make it lighter, whatever that means. Don't mind the fact that this is lighter then a high capacity fuel tank.
         mask:
         - MachineMask
         layer:
index 0e2a5f6fe5d4a550088209aad54ee779870de1f8..316c403d7aa7070fb40263cc55ec2fc877782711 100644 (file)
@@ -1,6 +1,6 @@
 - type: entity
   id: PortableScrubber
-  parent: [BaseMachinePowered, ConstructibleMachine]
+  parent: [BaseMachinePowered, ConstructibleMachine, StructureWheeled]
   name: portable scrubber
   description: It scrubs, portably!
   components:
index b606c01f1ddce3988b46b33dfd30c6a9204f77ab..0c8afc87a407eff5d2c251fb2e975a8e89fb6d6d 100644 (file)
@@ -6,7 +6,7 @@
 - type: entity
   abstract: true
   id: PortableGeneratorBase
-  parent: [ BaseMachine, ConstructibleMachine ]
+  parent: [ BaseMachine, ConstructibleMachine, StructureWheeled]
   components:
     # Basic properties
     - type: Transform
@@ -27,8 +27,8 @@
           shape:
             !type:PhysShapeAabb
             bounds: "-0.40,-0.40,0.40,0.40"
-          # It has wheels
-          density: 45
+          # Despite the heavy weight, it has wheels, so it's still fairly portable.
+          density: 155
           mask:
             - MachineMask
           layer:
           shape:
             !type:PhysShapeAabb
             bounds: "-0.30,-0.30,0.30,0.30"
-          # It has wheels
-          density: 30
+          density: 80
           mask:
             - MachineMask
           layer:
             damage: 75
           behaviors:
             - !type:SolutionExplosionBehavior
-              solution: tank
+              solution: tank
\ No newline at end of file
diff --git a/Resources/Prototypes/Entities/Structures/Specific/Janitor/drain.yml b/Resources/Prototypes/Entities/Structures/Specific/Janitor/drain.yml
new file mode 100644 (file)
index 0000000..e024700
--- /dev/null
@@ -0,0 +1,62 @@
+- type: entity
+  id: FloorDrain
+  name: drain
+  description: Drains puddles around it. Useful for dumping mop buckets or keeping certain rooms clean.
+  placement:
+    mode: SnapgridCenter
+  components:
+    - type: Sprite
+      drawdepth: FloorObjects
+      sprite: Objects/Specific/Janitorial/drain.rsi
+      layers:
+      - state: icon
+      - map: [ "enum.SolutionContainerLayers.Fill" ]
+        state: fill-1
+        visible: false
+    - type: InteractionOutline
+    - type: Clickable
+    - type: Transform
+      anchored: true
+    - type: Physics
+      bodyType: Static
+      canCollide: false
+    - type: AmbientSound
+      enabled: false
+      volume: -8
+      range: 8
+      sound:
+        path: /Audio/Ambience/Objects/drain.ogg
+    - type: Drain
+    - type: DumpableSolution
+      solution: drainBuffer
+    - type: Appearance
+    - type: SolutionContainerVisuals
+      maxFillLevels: 1
+      fillBaseName: fill-
+      solutionName: drainBuffer
+    - type: SolutionContainerManager
+      solutions:
+        drainBuffer:
+          maxVol: 1000
+    - type: DrainableSolution
+      solution: drainBuffer
+    - type: Damageable
+      damageContainer: Inorganic
+      damageModifierSet: Metallic
+    - type: Destructible
+      thresholds:
+        - trigger:
+            !type:DamageTrigger
+            damage: 200
+          behaviors:
+            - !type:DoActsBehavior
+              acts: [ "Destruction" ]
+        - trigger:
+            !type:DamageTrigger
+            damage: 100
+          behaviors:
+            - !type:DoActsBehavior
+              acts: [ "Destruction" ]
+            - !type:PlaySoundBehavior
+              sound:
+                collection: MetalBreak
diff --git a/Resources/Prototypes/Entities/Structures/Specific/Janitor/janicart.yml b/Resources/Prototypes/Entities/Structures/Specific/Janitor/janicart.yml
new file mode 100644 (file)
index 0000000..bdbff1b
--- /dev/null
@@ -0,0 +1,324 @@
+# Mop Bucket
+- type: entity
+  name: mop bucket
+  id: MopBucket
+  parent: [BaseStructureDynamic, StructureWheeled]
+  description: Holds water and the tears of the janitor.
+  components:
+  - type: Clickable
+  - type: Sprite
+    sprite: Objects/Specific/Janitorial/janitorial.rsi
+    noRot: true
+    layers:
+    - state: mopbucket
+    - state: mopbucket_water-1
+      map: ["enum.SolutionContainerLayers.Fill"]
+      visible: false
+    drawdepth: Objects
+  - type: InteractionOutline
+  - type: SolutionContainerManager
+    solutions:
+      bucket:
+        maxVol: 600
+  - type: Spillable
+    solution: bucket
+    spillDelay: 3.0
+  - type: DrainableSolution
+    solution: bucket
+  - type: RefillableSolution
+    solution: bucket
+  - type: ExaminableSolution
+    solution: bucket
+  - type: Tag
+    tags:
+      - Wringer
+  - type: ItemMapper
+    mapLayers:
+      mopbucket_shark_blue:
+        whitelist:
+          tags:
+            - PlushieSharkBlue
+      mopbucket_shark_pink:
+        whitelist:
+          tags:
+            - PlushieSharkPink
+      mopbucket_shark_grey:
+        whitelist:
+          tags:
+            - PlushieSharkGrey
+    sprite: Objects/Fun/sharkplush.rsi
+  - type: Transform
+    noRot: true
+  - type: ItemSlots
+    slots:
+      shark_slot:
+        name: mop-bucket-slot-component-slot-name-shark
+        whitelist:
+          tags:
+            - PlushieSharkBlue
+            - PlushieSharkPink
+            - PlushieSharkGrey
+        priority: 3 # Higher than drinking priority
+  - type: Drink
+    solution: bucket
+  - type: SolutionContainerVisuals
+    maxFillLevels: 3
+    fillBaseName: mopbucket_water-
+  - type: ContainerContainer
+    containers:
+      storagebase: !type:Container
+        ents: []
+      shark_slot: !type:ContainerSlot {}
+  - type: GuideHelp
+    guides:
+    - Janitorial
+  - type: Damageable
+    damageContainer: Inorganic
+  - type: Destructible
+    thresholds:
+    - trigger:
+        !type:DamageTrigger
+        damage: 70
+      behaviors:
+      - !type:DoActsBehavior
+        acts: ["Destruction"]
+
+- type: entity
+  name: mop bucket
+  id: MopBucketFull
+  parent: MopBucket
+  suffix: full
+  components:
+    - type: Sprite
+      layers:
+        - state: mopbucket
+        - state: mopbucket_water-3
+          map: [ "enum.SolutionContainerLayers.Fill" ]
+    - type: SolutionContainerManager
+      solutions:
+        bucket:
+          maxVol: 600
+          reagents:
+            - ReagentId: Water
+              Quantity: 600
+
+# Janicart
+- type: entity
+  name: janitorial trolley
+  id: JanitorialTrolley
+  parent: [BaseStructureDynamic, StructureWheeled]
+  description: This is the alpha and omega of sanitation.
+  components:
+    - type: Sprite
+      noRot: true
+      sprite: Objects/Specific/Janitorial/janitorial_cart.rsi
+      layers:
+        - state: cart
+        - state: cart_water-1
+          map: ["enum.SolutionContainerLayers.Fill"]
+          visible: false
+    - type: Rotatable
+    - type: InteractionOutline
+    # Removing storage until OnInteractUsing logic resolved
+    #- type: Storage
+    #  popup: false
+    #  capacity: 80
+    #  blacklist: # there is exclusive item slots for that
+    #    tags:
+    #      - Mop
+    #      - TrashBag
+    #      - Bucket
+    - type: ItemSlots
+      slots:
+        mop_slot:
+          name: janitorial-trolley-slot-component-slot-name-mop
+          whitelist:
+            tags:
+              - Mop
+          insertOnInteract: false # or it conflicts with bucket logic
+          priority: 9 # Higher than bucket slot
+        plunger_slot:
+          name: janitorial-trolley-slot-component-slot-name-plunger
+          whitelist:
+            tags:
+              - Plunger
+          priority: 8
+        wetfloorsign_slot4:
+          name: janitorial-trolley-slot-component-slot-name-sign
+          whitelist:
+            tags:
+              - WetFloorSign
+          priority: 7
+        wetfloorsign_slot3:
+          name: janitorial-trolley-slot-component-slot-name-sign
+          whitelist:
+            tags:
+              - WetFloorSign
+          priority: 7
+        wetfloorsign_slot2:
+          name: janitorial-trolley-slot-component-slot-name-sign
+          whitelist:
+            tags:
+              - WetFloorSign
+          priority: 7
+        wetfloorsign_slot1:
+          name: janitorial-trolley-slot-component-slot-name-sign
+          whitelist:
+            tags:
+              - WetFloorSign
+          priority: 7
+        lightreplacer_slot:
+          name: janitorial-trolley-slot-component-slot-name-lightreplacer
+          whitelist:
+            components:
+              - LightReplacer
+          priority: 6
+        spraybottle_slot:
+          name: janitorial-trolley-slot-component-slot-name-spray
+          whitelist:
+            tags:
+              - Spray
+          insertOnInteract: false # or it conflicts with bucket logic
+          priority: 5 # Higher than bucket slot
+        bucket_slot:
+          name: janitorial-trolley-slot-component-slot-name-bucket
+          whitelist:
+            tags:
+              - Bucket
+          insertOnInteract: false # or it also conflicts with bucket logic
+          priority: 4 # Higher than trash bag slot
+        trashbag_slot:
+          name: janitorial-trolley-slot-component-slot-name-trashbag
+          whitelist:
+            tags:
+              - TrashBag
+          priority: 3 # Higher than drinking priority
+    - type: Fixtures
+      fixtures:
+        fix1:
+          shape:
+            !type:PhysShapeCircle
+            radius: 0.3
+          density: 250
+          layer:
+          - MobLayer
+          mask:
+          - MobMask
+    - type: Spillable
+      solution: bucket
+      spillDelay: 3.0
+    - type: SolutionContainerManager
+      solutions:
+        bucket:
+          maxVol: 800
+          reagents:
+            - ReagentId: Water
+              Quantity: 600 # 3 quarters full at roundstart to make it more appealing
+    - type: DrainableSolution
+      solution: bucket
+    - type: RefillableSolution
+      solution: bucket
+    - type: ExaminableSolution
+      solution: bucket
+    - type: Tag
+      tags:
+        - Wringer
+    - type: Damageable
+      damageContainer: Inorganic
+      damageModifierSet: Metallic
+    - type: Destructible
+      thresholds:
+        - trigger:
+            !type:DamageTrigger
+            damage: 400
+          behaviors:
+            - !type:DoActsBehavior
+              acts: [ "Destruction" ]
+        - trigger:
+            !type:DamageTrigger
+            damage: 200
+          behaviors:
+            - !type:EmptyAllContainersBehaviour
+            - !type:DoActsBehavior
+              acts: ["Destruction"]
+            - !type:PlaySoundBehavior
+              sound:
+                collection: MetalBreak
+    - type: ItemMapper
+      mapLayers:
+        cart_plunger:
+          whitelist:
+            tags:
+              - Plunger
+        cart_mop:
+          whitelist:
+            tags:
+              - MopBasic
+        cart_advmop:
+          whitelist:
+            tags:
+              - MopAdv
+        cart_garbage:
+          whitelist:
+            tags:
+              - TrashBag
+        cart_replacer:
+          whitelist:
+            components:
+              - LightReplacer
+        cart_spray:
+          whitelist:
+            tags:
+              - Spray
+        cart_sign1: # this is like stack of floor signs
+          minCount: 1
+          whitelist:
+            tags:
+              - WetFloorSign
+        cart_sign2:
+          minCount: 2
+          whitelist:
+            tags:
+              - WetFloorSign
+        cart_sign3:
+          minCount: 3
+          whitelist:
+            tags:
+              - WetFloorSign
+        cart_sign4:
+          minCount: 4
+          whitelist:
+            tags:
+              - WetFloorSign
+        cart_bucket:
+          whitelist:
+            tags:
+              - Bucket
+      sprite: Objects/Specific/Janitorial/janitorial_cart.rsi
+    - type: Appearance
+    - type: SolutionContainerVisuals
+      maxFillLevels: 3
+      fillBaseName: cart_water-
+    - type: UserInterface
+      interfaces:
+      - key: enum.StorageUiKey.Key
+        type: StorageBoundUserInterface
+    - type: Drink
+      solution: bucket
+    - type: ContainerContainer
+      containers:
+        storagebase: !type:Container
+          ents: []
+        mop_slot: !type:ContainerSlot {}
+        trashbag_slot: !type:ContainerSlot {}
+        bucket_slot: !type:ContainerSlot {}
+        plunger_slot: !type:ContainerSlot {}
+        wetfloorsign_slot4: !type:ContainerSlot {}
+        wetfloorsign_slot3: !type:ContainerSlot {}
+        wetfloorsign_slot2: !type:ContainerSlot {}
+        wetfloorsign_slot1: !type:ContainerSlot {}
+        lightreplacer_slot: !type:ContainerSlot {}
+        spraybottle_slot:  !type:ContainerSlot {}
+    - type: GuideHelp
+      guides:
+      - Janitorial
index 24bcf7cf7a60ced86eeba06a425ef97603645b73..e55612d2c49c7b15875dbd40730c067ca7eaf377 100644 (file)
     sprite: Structures/Storage/Crates/syndicate.rsi
 
 - type: entity
-  parent: CrateBaseWeldable
+  parent: [StructureWheeled, CrateBaseWeldable]
   id: CrateTrashCart
   name: trash cart
   components:
index 238efaf68d0733685c2c49d8004fe797abab5b2b..7b56e6d36b55f018cb740bda9b8adcc0a938a71b 100644 (file)
   - type: ReagentTank
   - type: Transform
     noRot: true
+
+# For highcap tanks
+- type: entity
+  id: StorageTankBig
+  parent: StorageTank
+  abstract: true
+  components:
+  - type: Fixtures
+    fixtures:
+      fix1:
+        shape:
+          !type:PhysShapeAabb
+          bounds: "-0.4,-0.4,0.4,0.4"
+        density: 455 #very heavy, they store 10k units of reagents after all.
+        mask:
+        - MachineMask
+        layer:
+        - WallLayer
\ No newline at end of file
index a644c7afa146e7f7de18928b3548d883842839dd..e177cc72b16b9bd81f97d99eaf7fc897e4bf38c6 100644 (file)
@@ -2,7 +2,7 @@
 
 - type: entity
   id: WeldingFuelTank
-  parent: StorageTank
+  parent: [StorageTank, StructureWheeled]
   name: fuel tank
   description: A fuel tank. It's used to store high amounts of fuel.
   suffix: Empty
@@ -48,7 +48,7 @@
           Quantity: 1500
 
 - type: entity
-  parent: WeldingFuelTank
+  parent: [StorageTankBig, WeldingFuelTank] # StorageTankBig must come first, or else the desnity won't get inherited.
   id: WeldingFuelTankHighCapacity
   name: high-capacity fuel tank
   description: A highly pressurized fuel tank made to hold gargantuan amounts of welding fuel.
@@ -81,7 +81,7 @@
 
 - type: entity
   id: WaterTank
-  parent: StorageTank
+  parent: [StorageTank, StructureWheeled]
   name: water tank
   description: A water tank. It's used to store high amounts of water.
   suffix: Empty
           Quantity: 1500
 
 - type: entity
-  parent: WaterTankFull
+  parent: StorageTank
   id: WaterCooler
   name: water cooler
   description: Seems like a good place to stand and waste time. It has a stock of paper cups on the side.
       - FitsInDispenser
       tags:
       - Trash
+  - type: ExaminableSolution
+    solution: tank
+  - type: StaticPrice
+    price: 500
 
 - type: entity
-  parent: StorageTank
+  parent: [StorageTankBig, WaterTank]
   id: WaterTankHighCapacity
   name: high-capacity water tank
   description: A highly pressurized water tank made to hold gargantuan amounts of water.
   suffix: Full
   components:
+  - type: StaticPrice
+    price: 2500
   - type: Sprite
     sprite: Structures/Storage/tanks.rsi
     layers:
 
 - type: entity
   id: GenericTank
-  parent: StorageTank
+  parent: [StorageTank, StructureWheeled]
   suffix: Empty
   components:
     - type: StaticPrice
index b5356674aaa9a964b15467ba7343624e6b3e6447..71971a6624313b5e8771b6c18e588e676977d52a 100644 (file)
         - LowImpassable
   - type: Anchorable
 
+# For use with yaml composition, so that all wheeled structures can easily be changed.
+- type: entity
+  id: StructureWheeled
+  abstract: true
+  components:
+    - type: TileFrictionModifier
+      modifier: 0.4
+
 - type: Tag
   id: Structure