]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
More Buildable Furniture + Tweaks (#23188)
authorNairod <110078045+Nairodian@users.noreply.github.com>
Fri, 5 Jan 2024 16:53:34 +0000 (10:53 -0600)
committerGitHub <noreply@github.com>
Fri, 5 Jan 2024 16:53:34 +0000 (19:53 +0300)
your PR will be my beginning of a maintainer journey

Resources/Prototypes/Entities/Structures/Furniture/chairs.yml
Resources/Prototypes/Entities/Structures/Furniture/dresser.yml
Resources/Prototypes/Entities/Structures/Storage/filing_cabinets.yml
Resources/Prototypes/Recipes/Construction/Graphs/furniture/dresser.yml [new file with mode: 0644]
Resources/Prototypes/Recipes/Construction/Graphs/furniture/filing_cabinet.yml [new file with mode: 0644]
Resources/Prototypes/Recipes/Construction/Graphs/furniture/seats.yml
Resources/Prototypes/Recipes/Construction/furniture.yml
Resources/Prototypes/Recipes/Construction/storage.yml [new file with mode: 0644]

index ae8eddc9cf86ec8603ff61818ea21a7e874ebdfc..26829aba2d7056454243bf05948381d7b6bd637f 100644 (file)
   - type: Rotatable
   - type: Sprite
     state: steel-bench
+  - type: Construction
+    graph: Seat
+    node: chairSteelBench
 
index e3629fcf07f97461fd39432d0f06c51d930c5221..64c8a9dd99b7f688e1133ad67247a98a013d3686 100644 (file)
   - type: Tag
     tags:
     - Wooden
+  - type: Anchorable
+  - type: Rotatable
+  - type: Construction
+    graph: Dresser
+    node: dresser
 
 - type: entity
   id: DresserFilled
index df25ed523873f946854c8952c75b7d92accf4969..ea49d5f04da1b2bb23da3d932d22220506f76c14 100644 (file)
   - type: ContainerContainer
     containers:
       storagebase: !type:Container
+  - type: Damageable
+    damageContainer: Inorganic
+    damageModifierSet: Metallic
+  - type: Destructible
+    thresholds:
+    - trigger:
+        !type:DamageTrigger
+        damage: 50
+      behaviors:
+      - !type:DoActsBehavior
+        acts: ["Destruction"]
+      - !type:PlaySoundBehavior
+        sound:
+          path: /Audio/Effects/metalbreak.ogg
+      - !type:SpawnEntitiesBehavior
+        spawn:
+          SheetSteel1:
+            min: 1
+            max: 2
+  - type: Construction
+    graph: FilingCabinet
+    node: filingCabinet
+  - type: StaticPrice
+    price: 20
 
 - type: entity
   name: tall cabinet
@@ -58,6 +82,9 @@
     - state: tallcabinet-open
       map: ["openLayer"]
   - type: Appearance
+  - type: Construction
+    graph: FilingCabinet
+    node: tallCabinet
 
 - type: entity
   name: chest drawer
   - type: ContainerContainer
     containers:
       storagebase: !type:Container
+  - type: Damageable
+    damageContainer: Inorganic
+    damageModifierSet: Metallic
+  - type: Destructible
+    thresholds:
+    - trigger:
+        !type:DamageTrigger
+        damage: 50
+      behaviors:
+      - !type:DoActsBehavior
+        acts: ["Destruction"]
+      - !type:PlaySoundBehavior
+        sound:
+          path: /Audio/Effects/metalbreak.ogg
+      - !type:SpawnEntitiesBehavior
+        spawn:
+          SheetSteel1:
+            min: 1
+            max: 2
+  - type: Construction
+    graph: FilingCabinet
+    node: chestDrawer
+  - type: StaticPrice
+    price: 15
 
 - type: entity
   abstract: true
diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/furniture/dresser.yml b/Resources/Prototypes/Recipes/Construction/Graphs/furniture/dresser.yml
new file mode 100644 (file)
index 0000000..e765acc
--- /dev/null
@@ -0,0 +1,26 @@
+- type: constructionGraph
+  id: Dresser
+  start: start
+  graph:
+    - node: start
+      actions:
+        - !type:DestroyEntity {}
+      edges:
+        - to: dresser
+          completed:
+            - !type:SnapToGrid { }
+          steps:
+            - material: WoodPlank
+              amount: 3
+              doAfter: 2
+    - node: dresser
+      entity: Dresser
+      edges:
+        - to: start
+          completed:
+            - !type:SpawnPrototype
+              prototype: MaterialWoodPlank
+              amount: 3
+          steps:
+            - tool: Prying
+              doAfter: 3
diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/furniture/filing_cabinet.yml b/Resources/Prototypes/Recipes/Construction/Graphs/furniture/filing_cabinet.yml
new file mode 100644 (file)
index 0000000..72b33bb
--- /dev/null
@@ -0,0 +1,57 @@
+- type: constructionGraph
+  id: FilingCabinet
+  start: start
+  graph:
+    - node: start
+      actions:
+        - !type:DestroyEntity {}
+      edges:
+        - to: filingCabinet
+          steps:
+            - material: Steel
+              amount: 4
+              doAfter: 3
+        - to: tallCabinet
+          steps:
+            - material: Steel
+              amount: 4
+              doAfter: 3
+        - to: chestDrawer
+          steps:
+            - material: Steel
+              amount: 3
+              doAfter: 3
+
+    - node: filingCabinet
+      entity: filingCabinet
+      edges:
+        - to: start
+          completed:
+            - !type:SpawnPrototype
+              prototype: SheetSteel1
+              amount: 4
+          steps:
+            - tool: Screwing
+              doAfter: 4
+    - node: tallCabinet
+      entity: filingCabinetTall
+      edges:
+        - to: start
+          completed:
+            - !type:SpawnPrototype
+              prototype: SheetSteel1
+              amount: 4
+          steps:
+            - tool: Screwing
+              doAfter: 4
+    - node: chestDrawer
+      entity: filingCabinetDrawer
+      edges:
+        - to: start
+          completed:
+            - !type:SpawnPrototype
+              prototype: SheetSteel1
+              amount: 3
+          steps:
+            - tool: Screwing
+              doAfter: 4
index 30a988cb8f2dd07eb132f2c87d40f10124cdf8df..fe8a17bfb8fbbe96b66a4a0e55e94a9ab908074b 100644 (file)
               doAfter: 1
             - material: MetalRod
               amount: 2
+        - to: chairSteelBench
+          steps:
+            - material: Steel
+              amount: 2
+              doAfter: 1
 
     - node: chair
       entity: Chair
             - tool: Screwing
               doAfter: 1
 
+    - node: chairSteelBench
+      entity: SteelBench
+      edges:
+        - to: start
+          completed:
+            - !type:SpawnPrototype
+              prototype: SheetSteel1
+              amount: 2
+          steps:
+            - tool: Screwing
+              doAfter: 1
+
index e0b3a9d7bc25317918c3a92ccecfa60f5ae06377..6e14834ff2a6d96d3c0808403270bffd89b7cd18 100644 (file)
   conditions:
     - !type:TileNotBlocked
 
+- type: construction
+  name: steel bench
+  id: ChairSteelBench
+  graph: Seat
+  startNode: start
+  targetNode: chairSteelBench
+  category: construction-category-furniture
+  description: A long chair made for a metro. Really standard design.
+  icon:
+    sprite: Structures/Furniture/chairs.rsi
+    state: steel-bench
+  objectType: Structure
+  placementMode: SnapgridCenter
+  canBuildInImpassable: false
+  conditions:
+    - !type:TileNotBlocked
+
 #tables
 - type: construction
   name: steel table
   conditions:
     - !type:TileNotBlocked
 
-#beds
+#bedroom
 - type: construction
   id: Bed
   name: bed
   conditions:
     - !type:TileNotBlocked
 
+- type: construction
+  id: Dresser
+  name: dresser
+  description: Wooden dresser, can store things inside itself.
+  graph: Dresser
+  startNode: start
+  targetNode: dresser
+  category: construction-category-furniture
+  icon:
+    sprite: Structures/Furniture/furniture.rsi
+    state: dresser
+  objectType: Structure
+  placementMode: SnapgridCenter
+  canBuildInImpassable: false
+  conditions:
+    - !type:TileNotBlocked
+
 #racks
 - type: construction
   id: Rack
   conditions:
     - !type:TileNotBlocked
 
+#misc
 - type: construction
   id: MeatSpike
   name: meat spike
diff --git a/Resources/Prototypes/Recipes/Construction/storage.yml b/Resources/Prototypes/Recipes/Construction/storage.yml
new file mode 100644 (file)
index 0000000..41abf88
--- /dev/null
@@ -0,0 +1,51 @@
+#bureaucracy
+- type: construction
+  id: FilingCabinet
+  name: filing cabinet
+  description: A cabinet for all your filing needs.
+  graph: FilingCabinet
+  startNode: start
+  targetNode: filingCabinet
+  category: construction-category-storage
+  icon:
+    sprite: Structures/Storage/cabinets.rsi
+    state: filingcabinet
+  objectType: Structure
+  placementMode: SnapgridCenter
+  canBuildInImpassable: false
+  conditions:
+    - !type:TileNotBlocked
+
+- type: construction
+  id: TallCabinet
+  name: tall cabinet
+  description: A cabinet for all your filing needs.
+  graph: FilingCabinet
+  startNode: start
+  targetNode: tallCabinet
+  category: construction-category-storage
+  icon:
+    sprite: Structures/Storage/cabinets.rsi
+    state: tallcabinet
+  objectType: Structure
+  placementMode: SnapgridCenter
+  canBuildInImpassable: false
+  conditions:
+    - !type:TileNotBlocked
+
+- type: construction
+  id: ChestDrawer
+  name: chest drawer
+  description: A small drawer for all your filing needs, Now with wheels!
+  graph: FilingCabinet
+  startNode: start
+  targetNode: chestDrawer
+  category: construction-category-storage
+  icon:
+    sprite: Structures/Storage/cabinets.rsi
+    state: chestdrawer
+  objectType: Structure
+  placementMode: SnapgridCenter
+  canBuildInImpassable: false
+  conditions:
+    - !type:TileNotBlocked