From 9f9b87a760f0aa30bdfa41960e26a07eb6eba581 Mon Sep 17 00:00:00 2001 From: SimpleStation14 Date: Mon, 22 Apr 2024 05:42:46 -0400 Subject: [PATCH] Cherry-picked commit e94fba5f702820588ad358a1824d67920fd399f8 from space-wizards/space-station-14/master --- .../Closets/Lockers/base_structurelockers.yml | 10 +++ .../Storage/Closets/Lockers/lockers.yml | 12 ++++ .../Storage/Closets/base_structureclosets.yml | 5 ++ .../Crafting/Graphs/storage/tallbox.yml | 63 ++++++++++++++++++ .../Prototypes/Recipes/Crafting/tallbox.yml | 27 ++++++++ .../Structures/Storage/closet.rsi/meta.json | 3 + .../Storage/closet.rsi/secure_icon.png | Bin 0 -> 353 bytes .../Storage/wall_locker.rsi/generic_icon.png | Bin 0 -> 321 bytes .../Storage/wall_locker.rsi/meta.json | 1 + 9 files changed, 121 insertions(+) create mode 100644 Resources/Textures/Structures/Storage/closet.rsi/secure_icon.png create mode 100644 Resources/Textures/Structures/Storage/wall_locker.rsi/generic_icon.png diff --git a/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base_structurelockers.yml b/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base_structurelockers.yml index 7ab24f6b5ca..783bec3ba0d 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base_structurelockers.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/base_structurelockers.yml @@ -44,6 +44,11 @@ SheetSteel1: min: 1 max: 2 + - type: Construction + graph: ClosetSteel + node: done + containers: + - entity_storage - type: entity id: LockerBaseSecure @@ -61,3 +66,8 @@ behaviors: - !type:DoActsBehavior acts: ["Destruction"] + - type: Construction + graph: ClosetSteelSecure + node: done + containers: + - entity_storage diff --git a/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/lockers.yml b/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/lockers.yml index dbbd9b16ae9..67379ec990c 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/lockers.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Closets/Lockers/lockers.yml @@ -18,6 +18,18 @@ openSound: path: /Audio/Effects/woodenclosetopen.ogg +# Basic +- type: entity + id: LockerSteel + parent: LockerBaseSecure + name: secure closet + components: + - type: Appearance + - type: EntityStorageVisuals + stateBaseClosed: secure + stateDoorOpen: secure_open + stateDoorClosed: secure_door + # Cargo - type: entity id: LockerQuarterMaster diff --git a/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml b/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml index 66647d168f6..0ef99b9f47e 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Closets/base_structureclosets.yml @@ -171,6 +171,11 @@ SheetSteel1: min: 1 max: 1 + - type: Construction + graph: ClosetWall + node: done + containers: + - entity_storage #Wall locker - type: entity diff --git a/Resources/Prototypes/Recipes/Crafting/Graphs/storage/tallbox.yml b/Resources/Prototypes/Recipes/Crafting/Graphs/storage/tallbox.yml index 5b0cc1f9a2e..e72c56ff44c 100644 --- a/Resources/Prototypes/Recipes/Crafting/Graphs/storage/tallbox.yml +++ b/Resources/Prototypes/Recipes/Crafting/Graphs/storage/tallbox.yml @@ -25,3 +25,66 @@ amount: 4 - !type:EmptyAllContainers - !type:DeleteEntity + +- type: constructionGraph + id: ClosetSteelSecure + start: start + graph: + - node: start + edges: + - to: done + steps: + - material: Steel + amount: 4 + - material: Cable + amount: 2 + doAfter: 5 + - node: done + entity: LockerSteel + edges: + - to: start + steps: + - tool: Screwing + doAfter: 5 + conditions: + - !type:StorageWelded + welded: false + - !type:Locked + locked: false + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 4 + - !type:SpawnPrototype + prototype: CableApcStack1 + amount: 2 + - !type:EmptyAllContainers + - !type:DeleteEntity + +- type: constructionGraph + id: ClosetWall + start: start + graph: + - node: start + edges: + - to: done + steps: + - material: Steel + amount: 4 + doAfter: 5 + - node: done + entity: ClosetWall + edges: + - to: start + steps: + - tool: Screwing + doAfter: 5 + conditions: + - !type:StorageWelded + welded: false + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 4 + - !type:EmptyAllContainers + - !type:DeleteEntity diff --git a/Resources/Prototypes/Recipes/Crafting/tallbox.yml b/Resources/Prototypes/Recipes/Crafting/tallbox.yml index 09469093f77..21a7ec8225d 100644 --- a/Resources/Prototypes/Recipes/Crafting/tallbox.yml +++ b/Resources/Prototypes/Recipes/Crafting/tallbox.yml @@ -8,3 +8,30 @@ description: A tall steel box that cannot be locked. icon: { sprite: Structures/Storage/closet.rsi, state: generic_icon } objectType: Structure + +- type: construction + id: ClosetSteelSecure + name: secure closet + graph: ClosetSteelSecure + startNode: start + targetNode: done + category: construction-category-storage + description: A tall steel box that can be locked. + icon: { sprite: Structures/Storage/closet.rsi, state: secure_icon } + objectType: Structure + +- type: construction + id: ClosetWall + name: wall closet + graph: ClosetWall + startNode: start + targetNode: done + category: construction-category-storage + description: A standard-issue Nanotrasen storage unit, now on walls. + icon: { sprite: Structures/Storage/wall_locker.rsi, state: generic_icon } + objectType: Structure + placementMode: SnapgridCenter + canRotate: true + canBuildInImpassable: true + conditions: + - !type:WallmountCondition \ No newline at end of file diff --git a/Resources/Textures/Structures/Storage/closet.rsi/meta.json b/Resources/Textures/Structures/Storage/closet.rsi/meta.json index 98bbe8085a2..cf0c204447b 100644 --- a/Resources/Textures/Structures/Storage/closet.rsi/meta.json +++ b/Resources/Textures/Structures/Storage/closet.rsi/meta.json @@ -461,6 +461,9 @@ { "name": "secure_door" }, + { + "name": "secure_icon" + }, { "name": "secure_open" }, diff --git a/Resources/Textures/Structures/Storage/closet.rsi/secure_icon.png b/Resources/Textures/Structures/Storage/closet.rsi/secure_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..03b98c64db4675cb0a0ab2deaf827806e0570227 GIT binary patch literal 353 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCik_0(?STH8eCb($fnH3i9*w8ygy|tgQ6)^fEFs8X6iB5)v{J5?aH<0|Eka z?Ct;A+H!DkI5;@u7#REq+M}T0=m<29fzML%GmsK13Gxg6j}0&|UOMmusDiV=BeEE% z{xAqL9?xHq0u*fXba4!^@V|P=ldnO6$04vFL4ZAA$N$jKoDFKMWp4J|K9z}%DGP;| zcvu%N{yq7l+R=*=-^v|sFOA~*!gTep0JCDK7ng)x!zE2uCeG#VUwG@8J}P<`#2k=V zY|43z+voF^8$t!ES2Kh&-i{PovE$1OR=57YI6J== T6Ir$ZUBuw&>gTe~DWM4f$)SGw literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/generic_icon.png b/Resources/Textures/Structures/Storage/wall_locker.rsi/generic_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..63e9dcb0fad5ebda57c939e651170d21ee2cda01 GIT binary patch literal 321 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCijK0(?STt*or{_4M-d^BWr)5)%@Ni;F8OE0vX%g+)XqB_%V`(*ptm9336Q zLqcR^WPqBi1?PzZDS?t8zu^C61tRzs5v%n*=n1O-sFbFdq&tH)O6s+@faSXBW zzdGqISAznN+voV`XTSI7Do@k2WWVe3-0ddc{0|RnO-Siiqpnb;x_+>@wuf|GNmYDgTX_FI95T!oZdN&=e{-Y7F>ba(hioL0TEs6jC6 t>Kq02n9yRURE-iF){p*0HTqME7~Hk=bPF$bgaTc{;OXk;vd$@?2>=haZx#Rm literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Storage/wall_locker.rsi/meta.json b/Resources/Textures/Structures/Storage/wall_locker.rsi/meta.json index 3408841645d..b6ed63c7a3e 100644 --- a/Resources/Textures/Structures/Storage/wall_locker.rsi/meta.json +++ b/Resources/Textures/Structures/Storage/wall_locker.rsi/meta.json @@ -18,6 +18,7 @@ { "name": "fire_open" }, { "name": "generic" }, { "name": "generic_door" }, + { "name": "generic_icon" }, { "name": "generic_open" }, { "name": "gray_door" }, { "name": "green_door" },