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 00000000000..03b98c64db4 Binary files /dev/null and b/Resources/Textures/Structures/Storage/closet.rsi/secure_icon.png differ 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 00000000000..63e9dcb0fad Binary files /dev/null and b/Resources/Textures/Structures/Storage/wall_locker.rsi/generic_icon.png differ 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" },