From a7197611e910344eb0d32dfdafeb5046ee760947 Mon Sep 17 00:00:00 2001 From: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com> Date: Sun, 14 Mar 2021 22:40:18 -0700 Subject: [PATCH] Add seat construction (#3653) --- .../Constructible/Furniture/seats.yml | 21 +++ .../Recipes/Construction/Graphs/seats.yml | 124 ++++++++++++++++++ .../Recipes/Construction/furniture.yml | 118 +++++++++++++++++ 3 files changed, 263 insertions(+) create mode 100644 Resources/Prototypes/Recipes/Construction/Graphs/seats.yml create mode 100644 Resources/Prototypes/Recipes/Construction/furniture.yml diff --git a/Resources/Prototypes/Entities/Constructible/Furniture/seats.yml b/Resources/Prototypes/Entities/Constructible/Furniture/seats.yml index cea66c414d..5b4485148b 100644 --- a/Resources/Prototypes/Entities/Constructible/Furniture/seats.yml +++ b/Resources/Prototypes/Entities/Constructible/Furniture/seats.yml @@ -53,6 +53,9 @@ - Impassable - VaultImpassable - SmallImpassable + - type: Construction + graph: seat + node: chair - type: entity name: stool @@ -72,6 +75,9 @@ - Impassable - VaultImpassable - SmallImpassable + - type: Construction + graph: seat + node: stool - type: entity name: bar stool @@ -90,6 +96,9 @@ - Impassable - VaultImpassable - SmallImpassable + - type: Construction + graph: seat + node: stoolBar - type: entity name: white office chair @@ -109,6 +118,9 @@ - Impassable - VaultImpassable - SmallImpassable + - type: Construction + graph: seat + node: chairOffice - type: entity name: dark office chair @@ -117,6 +129,9 @@ components: - type: Sprite state: officechair_dark + - type: Construction + graph: seat + node: chairOfficeDark - type: entity name: comfy chair @@ -135,6 +150,9 @@ - Impassable - VaultImpassable - SmallImpassable + - type: Construction + graph: seat + node: chairComfy - type: entity name: wooden chair @@ -153,3 +171,6 @@ - Impassable - VaultImpassable - SmallImpassable + - type: Construction + graph: seat + node: chairWood diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/seats.yml b/Resources/Prototypes/Recipes/Construction/Graphs/seats.yml new file mode 100644 index 0000000000..c7cfb34048 --- /dev/null +++ b/Resources/Prototypes/Recipes/Construction/Graphs/seats.yml @@ -0,0 +1,124 @@ +- type: constructionGraph + id: seat + start: start + graph: + - node: start + actions: + - !type:DeleteEntity {} + edges: + - to: chair + steps: + - material: Steel + amount: 1 + doAfter: 1 + - to: stool + steps: + - material: Steel + amount: 1 + doAfter: 1 + - to: stoolBar + steps: + - material: Steel + amount: 1 + doAfter: 1 + - to: chairOffice + steps: + - material: Steel + amount: 2 + doAfter: 1 + - to: chairOfficeDark + steps: + - material: Steel + amount: 2 + doAfter: 1 + - to: chairComfy + steps: + - material: Steel + amount: 5 + doAfter: 1 + - to: chairWood + steps: + - material: WoodPlank + amount: 3 + doAfter: 1 + + - node: chair + entity: Chair + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + steps: + - tool: Screwing + doAfter: 1 + + - node: stool + entity: Stool + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + steps: + - tool: Screwing + doAfter: 1 + + - node: stoolBar + entity: StoolBar + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + steps: + - tool: Screwing + doAfter: 1 + + - node: chairOffice + entity: ChairOfficeLight + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 2 + steps: + - tool: Screwing + doAfter: 1 + + - node: chairOfficeDark + entity: ChairOfficeDark + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 2 + steps: + - tool: Screwing + doAfter: 1 + + - node: chairComfy + entity: ComfyChair + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 5 + steps: + - tool: Screwing + doAfter: 1 + + - node: chairWood + entity: ChairWood + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: MaterialWoodPlank1 + amount: 3 + steps: + - tool: Screwing + doAfter: 1 diff --git a/Resources/Prototypes/Recipes/Construction/furniture.yml b/Resources/Prototypes/Recipes/Construction/furniture.yml new file mode 100644 index 0000000000..7b2e6f5419 --- /dev/null +++ b/Resources/Prototypes/Recipes/Construction/furniture.yml @@ -0,0 +1,118 @@ +- type: construction + name: chair + id: Chair + graph: seat + startNode: start + targetNode: chair + category: Furniture + description: You sit in this. Either by will or force. + icon: + sprite: Constructible/Misc/furniture.rsi + state: chair + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: false + conditions: + - !type:TileNotBlocked {} + +- type: construction + name: stool + id: Stool + graph: seat + startNode: start + targetNode: stool + category: Furniture + description: You sit in this. Either by will or force. + icon: + sprite: Constructible/Misc/furniture.rsi + state: stool_base + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: false + conditions: + - !type:TileNotBlocked {} + +- type: construction + name: bar stool + id: StoolBar + graph: seat + startNode: start + targetNode: stoolBar + category: Furniture + description: You sit in this. Either by will or force. + icon: + sprite: Constructible/Misc/furniture.rsi + state: bar_stool + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: false + conditions: + - !type:TileNotBlocked {} + +- type: construction + name: office chair + id: ChairOfficeLight + graph: seat + startNode: start + targetNode: chairOffice + category: Furniture + description: You sit in this. Either by will or force. + icon: + sprite: Constructible/Misc/furniture.rsi + state: officechair_white + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: false + conditions: + - !type:TileNotBlocked {} + +- type: construction + name: dark office chair + id: ChairOfficeDark + graph: seat + startNode: start + targetNode: chairOfficeDark + category: Furniture + description: You sit in this. Either by will or force. + icon: + sprite: Constructible/Misc/furniture.rsi + state: officechair_dark + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: false + conditions: + - !type:TileNotBlocked {} + +- type: construction + name: comfy chair + id: ChairComfy + graph: seat + startNode: start + targetNode: chairComfy + category: Furniture + description: It looks comfy. + icon: + sprite: Constructible/Misc/furniture.rsi + state: comfychair_preview + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: false + conditions: + - !type:TileNotBlocked {} + +- type: construction + name: wooden chair + id: ChairWood + graph: seat + startNode: start + targetNode: chairWood + category: Furniture + description: You sit in this. Either by will or force. + icon: + sprite: Constructible/Misc/furniture.rsi + state: wooden_chair + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: false + conditions: + - !type:TileNotBlocked {}