From ae6f96fa8799737abf968a544366c434e3a43449 Mon Sep 17 00:00:00 2001 From: K-Dynamic <20566341+K-Dynamic@users.noreply.github.com> Date: Wed, 7 May 2025 23:37:59 +1200 Subject: [PATCH] Four-way pipe junction, swapping junction construction fix (#37092) * pipe x-junction assets, yml, construction * remove duplicate asset * attribution * x junction instead of junctioncross for utilities.yml --- .../Structures/Piping/Disposal/pipes.yml | 43 ++++++++++++++++++ .../Graphs/utilities/disposal_pipes.yml | 32 ++++++++++--- .../Recipes/Construction/utilities.yml | 9 ++++ .../Piping/disposal.rsi/conpipe-x.png | Bin 0 -> 4750 bytes .../Structures/Piping/disposal.rsi/meta.json | 18 ++++++-- .../Structures/Piping/disposal.rsi/pipe-u.png | Bin 4134 -> 0 bytes .../Structures/Piping/disposal.rsi/pipe-x.png | Bin 0 -> 5529 bytes .../Piping/disposal.rsi/pipe-xf.png | Bin 0 -> 5868 bytes 8 files changed, 90 insertions(+), 12 deletions(-) create mode 100644 Resources/Textures/Structures/Piping/disposal.rsi/conpipe-x.png delete mode 100644 Resources/Textures/Structures/Piping/disposal.rsi/pipe-u.png create mode 100644 Resources/Textures/Structures/Piping/disposal.rsi/pipe-x.png create mode 100644 Resources/Textures/Structures/Piping/disposal.rsi/pipe-xf.png diff --git a/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml b/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml index d6d5454384..bb7b08cc2c 100644 --- a/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml +++ b/Resources/Prototypes/Entities/Structures/Piping/Disposal/pipes.yml @@ -356,6 +356,7 @@ mask: - SubfloorMask - type: Construction + graph: DisposalPipe node: junctionflipped containers: - DisposalJunction @@ -400,6 +401,48 @@ containers: - DisposalJunction +- type: entity + id: DisposalXJunction + parent: DisposalPipeBase + name: disposal x-junction + description: A four-way junction. The arrow indicates where items exit. + components: + - type: Sprite + layers: + - map: [ "pipe" ] + state: conpipe-x + visible: true + - type: DisposalTube + containerId: DisposalJunction + - type: DisposalJunction + degrees: + - 0 + - -90 + - 180 + - 90 + - type: ContainerContainer + containers: + DisposalJunction: !type:Container + - type: GenericVisualizer + visuals: + enum.DisposalTubeVisuals.VisualState: + pipe: + Free: { state: conpipe-x } + Anchored: { state: pipe-x } + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.5,-0.5,0.5,0.5" + mask: + - SubfloorMask + - type: Construction + graph: DisposalPipe + node: xJunction + containers: + - DisposalJunction + - type: entity id: DisposalBend parent: DisposalPipeBase diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/utilities/disposal_pipes.yml b/Resources/Prototypes/Recipes/Construction/Graphs/utilities/disposal_pipes.yml index 1b3aa3105b..41ec858a1a 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/utilities/disposal_pipes.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/utilities/disposal_pipes.yml @@ -46,6 +46,11 @@ - material: Steel amount: 2 doAfter: 1 + - to: xJunction + steps: + - material: Steel + amount: 2 + doAfter: 1 - to: bend steps: - material: Steel @@ -157,8 +162,8 @@ steps: - tool: Screwing doAfter: 1 - - node: junctionflipped - entity: DisposalJunctionFlipped + - node: yJunction + entity: DisposalYJunction edges: - to: start completed: @@ -169,12 +174,12 @@ steps: - tool: Welding doAfter: 1 - - to: yJunction + - to: junctionflipped steps: - tool: Screwing doAfter: 1 - - node: yJunction - entity: DisposalYJunction + - node: junctionflipped + entity: DisposalJunctionFlipped edges: - to: start completed: @@ -185,14 +190,27 @@ steps: - tool: Welding doAfter: 1 - - to: junction + - to: xJunction steps: - tool: Screwing doAfter: 1 - - to: junctionflipped + - node: xJunction + entity: DisposalXJunction + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 2 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + - to: junction steps: - tool: Screwing doAfter: 1 + # DisposalBend - node: bend entity: DisposalBend edges: diff --git a/Resources/Prototypes/Recipes/Construction/utilities.yml b/Resources/Prototypes/Recipes/Construction/utilities.yml index 680bc4e36b..0feffe998d 100644 --- a/Resources/Prototypes/Recipes/Construction/utilities.yml +++ b/Resources/Prototypes/Recipes/Construction/utilities.yml @@ -200,6 +200,15 @@ placementMode: SnapgridCenter canBuildInImpassable: false +- type: construction + id: DisposalXJunction + graph: DisposalPipe + startNode: start + targetNode: xJunction + category: construction-category-utilities + placementMode: SnapgridCenter + canBuildInImpassable: false + - type: construction id: DisposalBend graph: DisposalPipe diff --git a/Resources/Textures/Structures/Piping/disposal.rsi/conpipe-x.png b/Resources/Textures/Structures/Piping/disposal.rsi/conpipe-x.png new file mode 100644 index 0000000000000000000000000000000000000000..bd67ab45e1cba8b14e82521e66231b33ee1d0906 GIT binary patch literal 4750 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 diff --git a/Resources/Textures/Structures/Piping/disposal.rsi/pipe-x.png b/Resources/Textures/Structures/Piping/disposal.rsi/pipe-x.png new file mode 100644 index 0000000000000000000000000000000000000000..0f5085c11bc4a697b27784cd70abef4977328228 GIT binary patch literal 5529 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 TB=Y(9Wh*cJR;p6MIOu->(G>eF literal 0 HcmV?d00001 -- 2.51.2