# SPDX-FileCopyrightText: 2019 Ephememory <yetanotherscuffed@gmail.com>
# SPDX-FileCopyrightText: 2019 Swept <49448379+SweptWasTaken@users.noreply.github.com>
# SPDX-FileCopyrightText: 2020 AJCM-git <60196617+AJCM-git@users.noreply.github.com>
# SPDX-FileCopyrightText: 2020 Acruid <shatter66@gmail.com>
# SPDX-FileCopyrightText: 2020 Exp <theexp111@gmail.com>
# SPDX-FileCopyrightText: 2020 Git-Nivrak <59925169+Git-Nivrak@users.noreply.github.com>
# SPDX-FileCopyrightText: 2020 Hugo Laloge <hugo.laloge@gmail.com>
# SPDX-FileCopyrightText: 2020 Paul Ritter <ritter.paul1@googlemail.com>
# SPDX-FileCopyrightText: 2020 Swept <jamesurquhartwebb@gmail.com>
# SPDX-FileCopyrightText: 2020 Vera Aguilera Puerto <zddm@outlook.es>
# SPDX-FileCopyrightText: 2020 V�ctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
# SPDX-FileCopyrightText: 2020 V�ctor Aguilera Puerto <zddm@outlook.es>
# SPDX-FileCopyrightText: 2020 py01 <pyronetics01@gmail.com>
# SPDX-FileCopyrightText: 2020 zumorica <zddm@outlook.es>
# SPDX-FileCopyrightText: 2021 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 SETh lafuente <cetaciocascarudo@gmail.com>
# SPDX-FileCopyrightText: 2021 SethLafuente <84478872+SethLafuente@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 Stanbery Trask <64054459+StanberyTrask@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 Swept <sweptwastaken@protonmail.com>
# SPDX-FileCopyrightText: 2021 Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 Vera Aguilera Puerto <gradientvera@outlook.com>
# SPDX-FileCopyrightText: 2021 cheesePizza2 <34486300+cheesePizza2@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 ChilbroBaggins <107660393+ChilbroBaggins@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Chris V <HoofedEar@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Delete69 <95458399+Delete69@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Errant <35878406+dmnct@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Fishfish458 <47410468+Fishfish458@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Francesco <frafonia@gmail.com>
# SPDX-FileCopyrightText: 2022 Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Jeff <velcroboy333@hotmail.com>
# SPDX-FileCopyrightText: 2022 Kara D <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2022 Lamrr <96937466+Lamrr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Morb <14136326+Morb0@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Peptide90 <78795277+Peptide90@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 fishfish458 <fishfish458>
# SPDX-FileCopyrightText: 2023 20kdc <asdd2808@gmail.com>
# SPDX-FileCopyrightText: 2023 Alekshhh <44923899+Alekshhh@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 AsikKEsel <115815982+AsikKEsel@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Flareguy <78941145+Flareguy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 I.K <45953835+notquitehadouken@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2023 Slava0135 <40753025+Slava0135@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 metalgearsloth <comedian_vs_clown@hotmail.com>
# SPDX-FileCopyrightText: 2023 notquitehadouken <1isthisameme>
# SPDX-FileCopyrightText: 2024 12rabbits <53499656+12rabbits@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Alzore <140123969+Blackern5000@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Boolean-Buckeye <36829021+Boolean-Buckeye@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 BooleanBuckeye <booleanbuckeye@gmail.com>
# SPDX-FileCopyrightText: 2024 Brandon Hu <103440971+Brandon-Huu@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Dimastra <65184747+Dimastra@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Dimastra <dimastra@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ed <96445749+TheShuEd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Emisse <99158783+Emisse@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Eoin Mcloughlin <helloworld@eoinrul.es>
# SPDX-FileCopyrightText: 2024 Errant <35878406+Errant-4@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 JIPDawg <51352440+JIPDawg@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 JIPDawg <JIPDawg93@gmail.com>
# SPDX-FileCopyrightText: 2024 JustCone <141039037+JustCone14@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 JustinWinningham <justinmwinningham@gmail.com>
# SPDX-FileCopyrightText: 2024 Ko4ergaPunk <62609550+Ko4ergaPunk@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 MACMAN2003 <macman2003c@gmail.com>
# SPDX-FileCopyrightText: 2024 Mervill <mervills.email@gmail.com>
# SPDX-FileCopyrightText: 2024 Moomoobeef <62638182+Moomoobeef@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Nim <128169402+Nimfar11@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 PJBot <pieterjan.briers+bot@gmail.com>
# SPDX-FileCopyrightText: 2024 Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
# SPDX-FileCopyrightText: 2024 Pieter-Jan Briers <pieterjan.briers@gmail.com>
# SPDX-FileCopyrightText: 2024 PopGamer46 <yt1popgamer@gmail.com>
# SPDX-FileCopyrightText: 2024 PursuitInAshes <pursuitinashes@gmail.com>
# SPDX-FileCopyrightText: 2024 QueerNB <176353696+QueerNB@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Saphire Lattice <lattice@saphi.re>
# SPDX-FileCopyrightText: 2024 ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Simon <63975668+Simyon264@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Spessmann <156740760+Spessmann@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Sphiral <145869023+SphiraI@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Thomas <87614336+Aeshus@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Tiniest Shark <head.rebel@yahoo.com>
# SPDX-FileCopyrightText: 2024 Vasilis <vasilis@pikachu.systems>
# SPDX-FileCopyrightText: 2024 Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Velcroboy <velcroboy333@hotmail.com>
# SPDX-FileCopyrightText: 2024 Winkarst <74284083+Winkarst-cpu@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 cohanna <conornhanna@gmail.com>
# SPDX-FileCopyrightText: 2024 coolboy911 <85909253+coolboy911@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 deathride58 <deathride58@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 eoineoineoin <github@eoinrul.es>
# SPDX-FileCopyrightText: 2024 github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 lunarcomets <140772713+lunarcomets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 lzk <124214523+lzk228@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 osjarw <62134478+osjarw@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 saintmuntzer <47153094+saintmuntzer@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 slarticodefast <161409025+slarticodefast@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 stellar-novas <stellar_novas@riseup.net>
# SPDX-FileCopyrightText: 2024 themias <89101928+themias@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2025 Aineias1 <dmitri.s.kiselev@gmail.com>
# SPDX-FileCopyrightText: 2025 Armok <155400926+ARMOKS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 CerberusWolfie <wb.johnb.willis@gmail.com>
# SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Milon <plmilonpl@gmail.com>
# SPDX-FileCopyrightText: 2025 Piras314 <p1r4s@proton.me>
# SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 boxxie79 <88395316+boxxie79@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 gluesniffler <linebarrelerenthusiast@gmail.com>
# SPDX-FileCopyrightText: 2025 username <113782077+whateverusername0@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 whateverusername0 <whateveremail>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: construction
  id: Girder
  graph: Girder
  startNode: start
  targetNode: girder
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: ReinforcedGirder
  graph: Girder
  startNode: start
  targetNode: reinforcedGirder
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: ClockworkGirder
  graph: ClockworkGirder
  startNode: start
  targetNode: clockGirder
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: Wall
  graph: Girder
  startNode: start
  targetNode: wall
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: ReinforcedWall
  graph: Girder
  startNode: start
  targetNode: reinforcedWall
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: WallClock
  graph: ClockworkGirder
  startNode: start
  targetNode: clockworkWall
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: WoodWall
  graph: Barricade
  startNode: start
  targetNode: woodWall
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: UraniumWall
  graph: Girder
  startNode: start
  targetNode: uraniumWall
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: SilverWall
  graph: Girder
  startNode: start
  targetNode: silverWall
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: PlasticWall
  graph: Girder
  startNode: start
  targetNode: plasticWall
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: PlasmaWall
  graph: Girder
  startNode: start
  targetNode: plasmaWall
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: GoldWall
  graph: Girder
  startNode: start
  targetNode: goldWall
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: ShuttleWall
  graph: Girder
  startNode: start
  targetNode: shuttleWall
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: DiagonalShuttleWall
  name: construction-recipe-diagonal-shuttle-wall
  graph: Girder
  startNode: start
  targetNode: diagonalshuttleWall
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: true
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: ClownWall
  graph: Girder
  startNode: start
  targetNode: bananiumWall
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: MeatWall
  graph: Girder
  startNode: start
  targetNode: meatWall
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

- type: construction
  id: Grille
  graph: Grille
  startNode: start
  targetNode: grille
  category: construction-category-structures
  conditions:
    - !type:TileNotBlocked
      failIfSpace: false
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false

- type: construction
  id: ClockGrille
  graph: ClockGrille
  startNode: start
  targetNode: clockGrille
  category: construction-category-structures
  conditions:
    - !type:TileNotBlocked
      failIfSpace: false
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false

- type: construction
  id: GrilleDiagonal
  graph: GrilleDiagonal
  startNode: start
  targetNode: grilleDiagonal
  category: construction-category-structures
  conditions:
    - !type:TileNotBlocked
      failIfSpace: false
  objectType: Structure
  placementMode: SnapgridCenter

- type: construction
  id: ClockworkGrilleDiagonal
  graph: GrilleDiagonal
  startNode: start
  targetNode: clockworkGrilleDiagonal
  category: construction-category-structures
  conditions:
    - !type:TileNotBlocked
      failIfSpace: false
  objectType: Structure
  placementMode: SnapgridCenter

- type: construction
  id: Window
  graph: Window
  startNode: start
  targetNode: window
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false

- type: construction
  id: WindowDiagonal
  name: construction-window-diagonal
  graph: WindowDiagonal
  startNode: start
  targetNode: windowDiagonal
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter

- type: construction
  id: ReinforcedWindow
  graph: Window
  startNode: start
  targetNode: reinforcedWindow
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false

- type: construction
  id: ReinforcedWindowDiagonal
  name: construction-recipe-reinforced-window-diagonal
  graph: WindowDiagonal
  startNode: start
  targetNode: reinforcedWindowDiagonal
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter

- type: construction
  id: TintedWindow
  graph: Window
  startNode: start
  targetNode: tintedWindow
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false

- type: construction
  id: ClockworkWindow
  graph: Window
  startNode: start
  targetNode: clockworkWindow
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false

- type: construction
  id: ClockworkWindowDiagonal
  name: construction-recipe-clockwork-window-diagonal
  graph: WindowDiagonal
  startNode: start
  targetNode: clockworkWindowDiagonal
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter

- type: construction
  id: PlasmaWindow
  graph: Window
  startNode: start
  targetNode: plasmaWindow
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false

- type: construction
  id: ReinforcedPlasmaWindow
  graph: Window
  startNode: start
  targetNode: reinforcedPlasmaWindow
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false

- type: construction
  id: ShuttleWindow
  graph: Window
  startNode: start
  targetNode: shuttleWindow
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false

- type: construction
  id: PlasmaWindowDiagonal
  name: construction-recipe-plasma-window-diagonal
  graph: WindowDiagonal
  startNode: start
  targetNode: plasmaWindowDiagonal
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter

- type: construction
  id: ReinforcedPlasmaWindowDiagonal
  name: construction-recipe-reinforced-plasma-window-diagonal
  graph: WindowDiagonal
  startNode: start
  targetNode: reinforcedPlasmaWindowDiagonal
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter

- type: construction
  id: WindowDirectional
  graph: WindowDirectional
  startNode: start
  targetNode: windowDirectional
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter

- type: construction
  id: WindowReinforcedDirectional
  graph: WindowDirectional
  startNode: start
  targetNode: windowReinforcedDirectional
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter

- type: construction
  id: WindowClockworkDirectional
  graph: WindowDirectional
  startNode: start
  targetNode: windowClockworkDirectional
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter

- type: construction
  id: PlasmaWindowDirectional
  graph: WindowDirectional
  startNode: start
  targetNode: plasmaWindowDirectional
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter

- type: construction
  id: PlasmaReinforcedWindowDirectional
  graph: WindowDirectional
  startNode: start
  targetNode: plasmaReinforcedWindowDirectional
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter

- type: construction
  id: UraniumWindow
  graph: Window
  startNode: start
  targetNode: uraniumWindow
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false

- type: construction
  id: ReinforcedUraniumWindow
  graph: Window
  startNode: start
  targetNode: reinforcedUraniumWindow
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false

- type: construction
  id: UraniumWindowDiagonal
  name: construction-recipe-uranium-window-diagonal
  graph: WindowDiagonal
  startNode: start
  targetNode: uraniumWindowDiagonal
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter

- type: construction
  id: ReinforcedUraniumWindowDiagonal
  name: construction-recipe-reinforced-uranium-window-diagonal
  graph: WindowDiagonal
  startNode: start
  targetNode: reinforcedUraniumWindowDiagonal
  category: construction-category-structures
  canBuildInImpassable: true
  conditions:
    - !type:EmptyOrWindowValidInTile
    - !type:NoWindowsInTile
  objectType: Structure
  placementMode: SnapgridCenter

- type: construction
  id: Firelock
  graph: Firelock
  startNode: start
  targetNode: Firelock
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: FirelockGlass
  graph: Firelock
  startNode: start
  targetNode: FirelockGlass
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: FirelockEdge
  name: construction-recipe-firelock-edge
  graph: Firelock
  startNode: start
  targetNode: FirelockEdge
  category: construction-category-structures
  placementMode: SnapgridCenter
  objectType: Structure
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: Turnstile
  graph: Turnstile
  startNode: start
  targetNode: turnstile
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

- type: construction
  id: Shutters
  graph: Shutters
  startNode: start
  targetNode: Shutters
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: true

- type: construction
  id: ShuttersWindow
  graph: Shutters
  startNode: start
  targetNode: ShuttersWindow
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: true

- type: construction
  id: ShuttersRadiation
  graph: Shutters
  startNode: start
  targetNode: ShuttersRadiation
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: true

- type: construction
  id: BlastDoor
  graph: BlastDoor
  startNode: start
  targetNode: blastdoor
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: true

- type: construction
  id: Catwalk
  graph: Catwalk
  startNode: start
  targetNode: Catwalk
  category: construction-category-structures
  conditions:
    - !type:TileNotBlocked
      failIfSpace: false
    #- !type:TileType # lavaland change - catwalks anywhere
    #  targets:
    #    - Lattice
    #    - Plating
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false

- type: construction
  id: FloorBananium
  graph: FloorBananium
  startNode: start
  targetNode: BananiumFloor
  category: construction-category-structures
  conditions:
    - !type:TileNotBlocked
      failIfSpace: false
    - !type:TileType
      targets:
        - Plating
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false

- type: construction
  id: Barricade
  graph: Barricade
  startNode: start
  targetNode: barricadefull
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: BarricadeDirectional
  name: construction-recipe-barricade-directional
  graph: BarricadeDirectional
  startNode: start
  targetNode: barricadefull
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: Railing
  graph: Railing
  startNode: start
  targetNode: railing
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

- type: construction
  id: RailingCorner
  name: construction-recipe-railing-corner
  graph: Railing
  startNode: start
  targetNode: railingCorner
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

- type: construction
  id: RailingCornerSmall
  name: construction-recipe-railing-corner-small
  graph: Railing
  startNode: start
  targetNode: railingCornerSmall
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

- type: construction
  id: RailingRound
  name: construction-recipe-railing-round
  graph: Railing
  startNode: start
  targetNode: railingRound
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

# Chain link fencing
- type: construction
  id: FenceMetal
  graph: FenceMetal
  startNode: start
  targetNode: straight
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

- type: construction
  id: FenceMetalCorner
  name: construction-recipe-fence-metal-corner
  graph: FenceMetal
  startNode: start
  targetNode: corner
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

- type: construction
  id: FenceMetalEnd
  name: construction-recipe-fence-metal-end
  graph: FenceMetal
  startNode: start
  targetNode: end
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

- type: construction
  id: FenceMetalGate
  graph: FenceMetal
  startNode: start
  targetNode: gate
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

#Wooden fence high
- type: construction
  id: FenceWood
  graph: FenceWood
  startNode: start
  targetNode: straight
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

- type: construction
  id: FenceWoodEnd
  name: construction-recipe-fence-wood-end
  graph: FenceWood
  startNode: start
  targetNode: end
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

- type: construction
  id: FenceWoodCorner
  name: construction-recipe-fence-wood-corner
  graph: FenceWood
  startNode: start
  targetNode: corner
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

- type: construction
  id: FenceWoodTJunction
  name: construction-recipe-fence-wood-t-junction
  graph: FenceWood
  startNode: start
  targetNode: tjunction
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

- type: construction
  id: FenceWoodGate
  graph: FenceWood
  startNode: start
  targetNode: gate
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

#Wooden fence small
- type: construction
  id: FenceWoodSmall
  graph: FenceWood
  startNode: start
  targetNode: straight_small
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

- type: construction
  id: FenceWoodEndSmall
  name: construction-recipe-fence-wood-end-small
  graph: FenceWood
  startNode: start
  targetNode: end_small
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

- type: construction
  id: FenceWoodCornerSmall
  name: construction-recipe-fence-wood-corner-small
  graph: FenceWood
  startNode: start
  targetNode: corner_small
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

- type: construction
  id: FenceWoodTJunctionSmall
  name: construction-recipe-fence-wood-t-junction-small
  graph: FenceWood
  startNode: start
  targetNode: tjunction_small
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

- type: construction
  id: FenceWoodGateSmall
  name: construction-recipe-fence-wood-gate-small
  graph: FenceWood
  startNode: start
  targetNode: gate_small
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

#Airlocks
- type: construction
  id: Airlock
  graph: Airlock
  startNode: start
  targetNode: airlock
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: AirlockGlass
  graph: Airlock
  startNode: start
  targetNode: glassAirlock
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: AirlockSealed
  graph: Airlock
  startNode: start
  targetNode: sealedAirlock
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: AirlockSealedGlass
  graph: Airlock
  startNode: start
  targetNode: sealedGlassAirlock
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: PinionAirlock
  name: construction-recipe-pinion-airlock
  graph: PinionAirlock
  startNode: start
  targetNode: airlock
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: PinionAirlockGlass
  name: construction-recipe-pinion-airlock-glass
  graph: PinionAirlock
  startNode: start
  targetNode: glassAirlock
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: AirlockShuttle
  graph: AirlockShuttle
  startNode: start
  targetNode: airlock
  category: construction-category-structures
  #  state: assembly
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

- type: construction
  id: AirlockGlassShuttle
  name: construction-recipe-airlock-glass-shuttle
  graph: AirlockShuttle
  startNode: start
  targetNode: airlockGlass
  category: construction-category-structures
  #  state: assembly
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: Windoor
  graph: Windoor
  startNode: start
  targetNode: windoor
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: SecureWindoor
  graph: Windoor
  startNode: start
  targetNode: windoorSecure
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: ClockworkWindoor
  graph: Windoor
  startNode: start
  targetNode: windoorClockwork
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

#lighting
- type: construction
  id: LightTubeFixture
  graph: LightFixture
  startNode: start
  targetNode: tubeLight
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: true
  canBuildInImpassable: false
  conditions:
  # Need an *additional* condition here that forces there to be a wall in the opposite direction to the one used for placement.
  # Also see below. Didn't add it b/c construction ECS work going on. Cheers, - 20kdc
    - !type:TileNotBlocked

- type: construction
  id: LightSmallFixture
  graph: LightFixture
  startNode: start
  targetNode: bulbLight
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: true
  canBuildInImpassable: false
  conditions:
  # Same here. - 20kdc
    - !type:TileNotBlocked

- type: construction
  id: EmergencyLightFixture
  graph: LightFixture
  startNode: start
  targetNode: emergencyLight
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: true
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: LightGroundFixture
  graph: LightFixture
  startNode: start
  targetNode: groundLight
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: false
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: LightStrobeFixture
  graph: LightFixture
  startNode: start
  targetNode: strobeLight
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canRotate: true
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

#conveyor
- type: construction
  id: ConveyorBelt
  graph: ConveyorGraph
  startNode: start
  targetNode: entity
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: MetalDoor
  graph: DoorGraph
  startNode: start
  targetNode: metalDoor
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: WoodDoor
  graph: DoorGraph
  startNode: start
  targetNode: woodDoor
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: PlasmaDoor
  graph: DoorGraph
  startNode: start
  targetNode: plasmaDoor
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: GoldDoor
  graph: DoorGraph
  startNode: start
  targetNode: goldDoor
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: SilverDoor
  graph: DoorGraph
  startNode: start
  targetNode: silverDoor
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: PaperDoor
  graph: DoorGraph
  startNode: start
  targetNode: paperDoor
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false

- type: construction
  id: PlasticFlapsClear
  name: construction-recipe-plastic-flaps-clear
  graph: PlasticFlapsGraph
  startNode: start
  targetNode: plasticFlaps
  category: construction-category-structures
  placementMode: SnapgridCenter
  objectType: Structure
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: PlasticFlapsOpaque
  name: construction-recipe-plastic-flaps-opaque
  graph: PlasticFlapsGraph
  startNode: start
  targetNode: opaqueFlaps
  category: construction-category-structures
  placementMode: SnapgridCenter
  objectType: Structure
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: CarpStatue
  graph: CarpStatue
  startNode: start
  targetNode: statue
  category: construction-category-structures
  placementMode: SnapgridCenter
  objectType: Structure
  canBuildInImpassable: false
  conditions:
  - !type:TileNotBlocked

- type: construction
  id: BananiumClownStatue
  graph: BananiumStatueClown
  startNode: start
  targetNode: bananiumStatue
  category: construction-category-structures
  placementMode: SnapgridCenter
  objectType: Structure
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: BananiumDoor
  graph: DoorGraph
  startNode: start
  targetNode: bananiumDoor
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

##- type: construction
##  name: bananium altar
##  id: BananiumAltar
##  graph: BananiumAltarGraph
##  startNode: start
##  targetNode: bananiumAltar
##  category: construction-category-structures
##  description: An altar to worship the honkmother with.
##  icon:
##   sprite: Structures/Furniture/Altars/Cults/bananium.rsi
##    state: full
##  objectType: Structure
##  placementMode: SnapgridCenter
##  canRotate: false
##  canBuildInImpassable: false
##  conditions:
##    - !type:TileNotBlocked

- type: construction
  name: recipes-secret-door-name
  id: SolidSecretDoor
  graph: SecretDoor
  startNode: start
  targetNode: solidSecretDoor
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  name: recipes-secret-door-reinforced-name
  id: ReinforcedSecretDoor
  graph: ReinforcedSecretDoor
  startNode: start
  targetNode: ReinforcedSecretDoor
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked

- type: construction
  id: FungalSoil
  graph: Soil
  startNode: start
  targetNode: fungalSoil
  category: construction-category-structures
  objectType: Structure
  placementMode: SnapgridCenter
  canBuildInImpassable: false
  conditions:
    - !type:TileNotBlocked
