]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Mail Cart (#41482)
authorNoah Beverly <noahbeverly@gmail.com>
Thu, 20 Nov 2025 04:18:19 +0000 (21:18 -0700)
committerGitHub <noreply@github.com>
Thu, 20 Nov 2025 04:18:19 +0000 (04:18 +0000)
* Add mailcart crate type

* Add recent progress, move location of mailcart.rsi

* Allow letters and packages to be inserted

* Add updated sprites for mailcart

* Add storage for letters

* Bugfix for sprite

* Add fix for mincount mailcart sprite updates

* Add dynamic names to packages in mailcart

* Add additional whitelist items

* Update tag comments

* Remove max item size

* Update fixture for mailcart, remove unused code from crates.yml

* Add mail cart to cargo ordering

* Update meta.json

* Remove unused comment

* Update copyright

* Add missing ContainerContainer

* Update ContainerContainer

* Revert "Update ContainerContainer"

This reverts commit 1805dcd58d8c0f52baca9db0d3173940ee241159.

* Remove container slots and increase storage

* Remove unused tags

* Remove LetterDelivery tag

---------

Co-authored-by: Justin Pfeifler <jrpl101998@gmail.com>
15 files changed:
Resources/Prototypes/Catalog/Cargo/cargo_cargo.yml
Resources/Prototypes/Entities/Objects/Deliveries/deliveries.yml
Resources/Prototypes/Entities/Structures/Specific/Cargo/mailcart.yml [new file with mode: 0644]
Resources/Prototypes/tags.yml
Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/icon.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/mailcart_base.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/meta.json [new file with mode: 0644]
Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_1.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_2.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_3.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_4.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_5.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_6.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_7.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_8.png [new file with mode: 0644]

index 050aa647b8e826c9739135c9e9a554c540073c6a..132f1b3c092396337119fd669bb3b8b655c4eb6f 100644 (file)
   cost: 2500
   category: cargoproduct-category-name-cargo
   group: market
+
+- type: cargoProduct
+  id: CargoMailCart
+  icon:
+      sprite: Objects/Specific/Cargo/mailcart.rsi
+      state: icon
+  product: MailCart
+  cost: 300
+  category: cargoproduct-category-name-cargo
+  group: market
index a011460366c58edd8642082d755ccd868ec42f7e..9267009b3e23b0e681d0e9f0d4bd29849096ac6a 100644 (file)
     containers:
       delivery: !type:NestedSelector
         tableId: PackageDeliveryRewards
+  - type: Tag
+    tags:
+      - PackageDelivery
 
 - type: entity
   parent: BaseDelivery
diff --git a/Resources/Prototypes/Entities/Structures/Specific/Cargo/mailcart.yml b/Resources/Prototypes/Entities/Structures/Specific/Cargo/mailcart.yml
new file mode 100644 (file)
index 0000000..4042b11
--- /dev/null
@@ -0,0 +1,94 @@
+# Mailcart
+- type: entity
+  name: mail cart
+  id: MailCart
+  parent: [BaseStructureDynamic, StructureWheeled]
+  description: Deliver packages with style and efficiency.
+  components:
+    - type: Sprite
+      noRot: true
+      sprite: Objects/Specific/Cargo/mailcart.rsi
+      layers:
+        - state: mailcart_base
+    - type: InteractionOutline
+    - type: Storage
+      grid:
+      - 0,0,15,7
+      quickInsert: true
+      maxItemSize: Huge
+      whitelist:
+        components:
+        - Delivery
+        tags:
+        - Paper
+        - Document
+        - BoxCardboard
+        - Folder
+    - type: Fixtures
+      fixtures:
+        fix1:
+          shape:
+            !type:PhysShapeAabb
+            bounds: "-0.18,-0.2,0.18,0.2"
+          density: 60
+          mask:
+          - FullTileMask
+          layer:
+          - LargeMobLayer
+    - 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:
+        package_1:
+          minCount: 1
+          whitelist: &PackageWhitelist
+            tags:
+              - PackageDelivery
+        package_2:
+          minCount: 2
+          whitelist: *PackageWhitelist
+        package_3:
+          minCount: 3
+          whitelist: *PackageWhitelist
+        package_4:
+          minCount: 4
+          whitelist: *PackageWhitelist
+        package_5:
+          minCount: 5
+          whitelist: *PackageWhitelist
+        package_6:
+          minCount: 6
+          whitelist: *PackageWhitelist
+        package_7:
+          minCount: 7
+          whitelist: *PackageWhitelist
+        package_8:
+          minCount: 8
+          whitelist: *PackageWhitelist
+      sprite: Objects/Specific/Cargo/mailcart.rsi
+    - type: Appearance
+    - type: UserInterface
+      interfaces:
+        enum.StorageUiKey.Key:
+          type: StorageBoundUserInterface
+    - type: ContainerContainer
+      containers:
+        storagebase: !type:Container
+          ents: []
index 44b636495c4bd56b9feed51b1027bc6f5389d00d..274d9447b4a36d626b15094a9da3af6bdcaa47e9 100644 (file)
   id: Bottle # Storage whitelist: ChemMaster, ChemBag, SmartFridge, ClothingBeltJanitor, ClothingBeltMedical, ClothingBeltPlant
 
 - type: Tag
-  id: BoxCardboard # CargoBounty: BountyCardboardBox
+  id: BoxCardboard # CargoBounty: BountyCardboardBox. Storage whitelist: MailCart
 
 - type: Tag
   id: BoxHug # ConstructionGraph: HugBot
   id: DockEmergency # Used bv EmergencyShuttleSystem for finding a priority FTL destination.
 
 - type: Tag
-  id: Document # A superset of Paper tag. Represents a paper-like entity with writing on it, but is not necessarily writeable itself.
+  id: Document # A superset of Paper tag. Represents a paper-like entity with writing on it, but is not necessarily writeable itself. Storage whitelist: MailCart
 
 - type: Tag
   id: DonkPocket # Storage whitelist: FoodBoxDonkpocket
   id: Flower # CargoBounty: flowerwreath. CargoBounty: BountyFlower
 
 - type: Tag
-  id: Folder # Storage whitelist: Bookshelf, NoticeBoard
+  id: Folder # Storage whitelist: Bookshelf, NoticeBoard, MailCart
 
 - type: Tag
   id: FoodSnack # Storage whitelist: CandyBucket, CandyBowl. ItemMapper: CandyBowl
 
 ## P ##
 
+- type: Tag
+  id: PackageDelivery # ItemMapper: MailCart
+
 - type: Tag
   id: Packet # Storage whitelist: ClothingBeltChef
 
   id: Pancake # CargoBounty: BountyPancake
 
 - type: Tag
-  id: Paper # A writeable piece of paper. Subset of Document tag. SpecialDigestible: OrganMothStomach, OrganReptilianStomach
+  id: Paper # A writeable piece of paper. Subset of Document tag. SpecialDigestible: OrganMothStomach, OrganReptilianStomach. Storage whitelist: MailCart
 
 - type: Tag
   id: ParadoxCloneObjectiveBlacklist # objective entities with this tag don't get copied to paradox clones
diff --git a/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/icon.png b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/icon.png
new file mode 100644 (file)
index 0000000..eff08d6
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/icon.png differ
diff --git a/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/mailcart_base.png b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/mailcart_base.png
new file mode 100644 (file)
index 0000000..eff08d6
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/mailcart_base.png differ
diff --git a/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/meta.json b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/meta.json
new file mode 100644 (file)
index 0000000..b0ffc8c
--- /dev/null
@@ -0,0 +1,41 @@
+{
+  "version": 1,
+  "license": "CC-BY-SA-3.0",
+  "copyright": "Mailcart_base sprite made by noahrb (Github) for SS14; Package_1 through Package_8 sprites made by Emisse (Github) for SS14... and all the fans.",
+  "size": {
+    "x": 32,
+    "y": 32
+  },
+  "states": [
+    {
+      "name": "icon"
+    },
+    {
+      "name": "mailcart_base"
+    },
+    {
+      "name": "package_1"
+    },
+    {
+      "name": "package_2"
+    },
+    {
+      "name": "package_3"
+    },
+    {
+      "name": "package_4"
+    },
+    {
+      "name": "package_5"
+    },
+    {
+      "name": "package_6"
+    },
+    {
+      "name": "package_7"
+    },
+    {
+      "name": "package_8"
+    }
+  ]
+}
diff --git a/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_1.png b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_1.png
new file mode 100644 (file)
index 0000000..8d46326
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_1.png differ
diff --git a/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_2.png b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_2.png
new file mode 100644 (file)
index 0000000..dc35d82
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_2.png differ
diff --git a/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_3.png b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_3.png
new file mode 100644 (file)
index 0000000..5f0e797
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_3.png differ
diff --git a/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_4.png b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_4.png
new file mode 100644 (file)
index 0000000..f8cd041
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_4.png differ
diff --git a/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_5.png b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_5.png
new file mode 100644 (file)
index 0000000..81c7b2b
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_5.png differ
diff --git a/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_6.png b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_6.png
new file mode 100644 (file)
index 0000000..60cb003
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_6.png differ
diff --git a/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_7.png b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_7.png
new file mode 100644 (file)
index 0000000..d7fbf8d
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_7.png differ
diff --git a/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_8.png b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_8.png
new file mode 100644 (file)
index 0000000..8363766
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_8.png differ