diff --git a/Resources/Prototypes/Catalog/Cargo/cargo_cargo.yml b/Resources/Prototypes/Catalog/Cargo/cargo_cargo.yml index 050aa647b8..132f1b3c09 100644 --- a/Resources/Prototypes/Catalog/Cargo/cargo_cargo.yml +++ b/Resources/Prototypes/Catalog/Cargo/cargo_cargo.yml @@ -37,3 +37,13 @@ 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 diff --git a/Resources/Prototypes/Entities/Objects/Deliveries/deliveries.yml b/Resources/Prototypes/Entities/Objects/Deliveries/deliveries.yml index a011460366..9267009b3e 100644 --- a/Resources/Prototypes/Entities/Objects/Deliveries/deliveries.yml +++ b/Resources/Prototypes/Entities/Objects/Deliveries/deliveries.yml @@ -102,6 +102,9 @@ 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 index 0000000000..4042b115f5 --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/Specific/Cargo/mailcart.yml @@ -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: [] diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 44b636495c..274d9447b4 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -159,7 +159,7 @@ 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 @@ -465,7 +465,7 @@ 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 @@ -581,7 +581,7 @@ 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 @@ -1024,6 +1024,9 @@ ## P ## +- type: Tag + id: PackageDelivery # ItemMapper: MailCart + - type: Tag id: Packet # Storage whitelist: ClothingBeltChef @@ -1031,7 +1034,7 @@ 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 index 0000000000..eff08d6662 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 index 0000000000..eff08d6662 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 index 0000000000..b0ffc8c6ff --- /dev/null +++ b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/meta.json @@ -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 index 0000000000..8d4632621f 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 index 0000000000..dc35d82b8d 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 index 0000000000..5f0e79710a 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 index 0000000000..f8cd0410ba 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 index 0000000000..81c7b2b6d9 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 index 0000000000..60cb003b10 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 index 0000000000..d7fbf8d563 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 index 0000000000..8363766ecb Binary files /dev/null and b/Resources/Textures/Objects/Specific/Cargo/mailcart.rsi/package_8.png differ