From fb38dfa101f717c2d2ae0ccc3edf280d45c3d0af Mon Sep 17 00:00:00 2001 From: tkirkby Date: Fri, 3 Jul 2026 17:55:32 -0700 Subject: [PATCH 1/4] add shuttle window frame sprite --- .../Windows/shuttle_window_frame.rsi/full.png | Bin 0 -> 905 bytes .../Windows/shuttle_window_frame.rsi/meta.json | 17 +++++++++++++++++ .../shuttle_window_frame.rsi/plastit_full.png | Bin 0 -> 832 bytes 3 files changed, 17 insertions(+) create mode 100644 Resources/Textures/_Mono/Structures/Windows/shuttle_window_frame.rsi/full.png create mode 100644 Resources/Textures/_Mono/Structures/Windows/shuttle_window_frame.rsi/meta.json create mode 100644 Resources/Textures/_Mono/Structures/Windows/shuttle_window_frame.rsi/plastit_full.png diff --git a/Resources/Textures/_Mono/Structures/Windows/shuttle_window_frame.rsi/full.png b/Resources/Textures/_Mono/Structures/Windows/shuttle_window_frame.rsi/full.png new file mode 100644 index 0000000000000000000000000000000000000000..f17f9a0c8dfa4dc76ee8af6e17435dc84279683a GIT binary patch literal 905 zcmV;419tq0P)5|`Zs5nI8=B48of z_$vGd+6uM`f}jW@)|S2+3G1Cih)6Qa?EN@1=W_QfI3oqUXt}4MSSp*ba7bHBENPxs zJh*{j`jfh4%tWIR+ODsA9ID<0Rj>BT4>G@<@ z_((Wl%7DVxN>4TTMRBgdABxR*Y!;lVr7Ljn#c~tcgdLx4{OcICA908xXZ3T{BX%qG#kOu%UAQ zpQn|b7;kj=rvkSGVZGRuzcI^aQPjFdk`qw0yk^hGn<9CGw4Y`?=5sKH?sOY=kx*MoAQfpVE+I{_ zr2qf`32;bRa{vG+ng9SOngJI&A+i7f0m4Z{K~z}7V>GpJ{Le6efCWT2IXf{l)fK@7 z>zeu)?%#iaRfD3U0$v00=|i_;-`;%?2Y@72ZrFojNOx~Lh9OU%y#&(}dM98w1f-{+ zxB$$SmJ-L%TUuO+Vh6}hxC3C|>ZMBz+Io6m_OvN8!8DAI41E0k7`ANOgduk4&OI<2 zM#Id+Wd}S8U;tSnD<_>nLWmn@P=^P&5EscnbuZq11&07O4>5ugAt((X#~pI;<8uTt z0Ax9GG$5x5P!xb2ps1t-wiFcXAfLlPNMJZsQu>zdiyS)v3#&W_1I fbxs)vx_b@)lojr$DSFag00000NkvXXu0mjfN8^I; literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Mono/Structures/Windows/shuttle_window_frame.rsi/meta.json b/Resources/Textures/_Mono/Structures/Windows/shuttle_window_frame.rsi/meta.json new file mode 100644 index 00000000000..100afe6846f --- /dev/null +++ b/Resources/Textures/_Mono/Structures/Windows/shuttle_window_frame.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by tkirby (github) based on shuttle and plastitanium window sprites.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "full" + }, + { + "name": "plastit_full" + } + ] +} diff --git a/Resources/Textures/_Mono/Structures/Windows/shuttle_window_frame.rsi/plastit_full.png b/Resources/Textures/_Mono/Structures/Windows/shuttle_window_frame.rsi/plastit_full.png new file mode 100644 index 0000000000000000000000000000000000000000..d67fe85277824ffc04562c1fc541e7950ac44dc1 GIT binary patch literal 832 zcmV-G1Hb%5|`Zs5nI8=B48of z_$vGd+6uM`f}jW@)|S2+3G1Cih)6Qa?EN@1=W_QfI3oqUXt}4MSSp*ba7bHBENPxs zJh*{j`jfh4%tWIR+ODsA9ID<0Rj>BT4>G@<@ z_((Wl%7DVxN>4TTMRBgdABxR*Y!;lVr7Ljn#c~tcgdLx4{OcICA908xXZ3T{BX%qG#kOu%UAQ zpQn|b7;kj=rvkSGVZGRuzcI^aQPjFdk`qw0yk^hGn<9CGw4Y`?=5sKH?sOY=kx*MoAQfpVE+I{_ zr2qf`32;bRbCGAUA^-pY0RcGJI1>N>0eMM8K~z}7?N>`~gD?;U#JVA7(@m5Qt-8*F zW3)MIk}GhDs-a2LHRN*v+Ho>yFboi5i7pt4SdQ)IH{%)nu!VTetRBsUpZRpcPB@>h zmghZbfj6z)AAfEHzJ8pSI4%!Tc=)48Wz>lzg6M8eNpNGQ%jFgUs8zLGWY{}yjt&5cU@+JJK8t_2K#?q$5e!p zuw`8YNf<6m7u@bEuD*`xIZ+i;=Y{Sq$mReQjyZupF`??jri245)D+mS5~U6&olP5u z?Q+tYDi{+b+Dew=L_7{!I=Uqa38!LL5=d&iOFDSowASwX^ZXaEL*NZIeuDb|0000< KMNUMnLSTZkTXm=a literal 0 HcmV?d00001 From 1ebb0dcdc8fddab7a9f18258707bfafa24be77a0 Mon Sep 17 00:00:00 2001 From: tkirkby Date: Sun, 5 Jul 2026 00:03:21 -0700 Subject: [PATCH 2/4] added WindowFrame construction graph --- .../Structures/Windows/plastitanium.yml | 9 +- .../Entities/Structures/Windows/shuttle.yml | 6 +- .../Construction/Graphs/structures/window.yml | 82 ++-- .../Recipes/Construction/structures.yml | 2 +- .../_Mono/Entities/Structures/windows.yml | 47 +++ .../Construction/Graphs/structures/window.yml | 384 ++++++++++++++++++ .../_Mono/Recipes/Construction/structures.yml | 95 +++++ .../Graphs/structures/plastitanium.yml | 104 ++--- .../Windows/shuttle_window_frame.rsi/bare.png | Bin 0 -> 753 bytes .../shuttle_window_frame.rsi/meta.json | 5 +- 10 files changed, 638 insertions(+), 96 deletions(-) create mode 100644 Resources/Prototypes/_Mono/Recipes/Construction/Graphs/structures/window.yml create mode 100644 Resources/Textures/_Mono/Structures/Windows/shuttle_window_frame.rsi/bare.png diff --git a/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml b/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml index 6d7f29fddf6..fa2d3dbd978 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml @@ -128,9 +128,9 @@ damageModifierSet: RGlass - type: StaticPrice # Frontier price: 100 # Frontier - - type: Construction # Frontier - Harder to break into - graph: Plastitanium # Frontier - Harder to break into - node: plastitaniumWindow # Frontier - Harder to break into + - type: Construction # Mono - craftable plastitanium windows + graph: WindowFrame # Mono + node: plastitaniumWindow # Mono - type: entity id: PlastitaniumWindowDiagonalBase @@ -225,3 +225,6 @@ - type: Damageable damageContainer: StructuralInorganic damageModifierSet: RGlass + - type: Construction # Mono - craftable plastitanium windows + graph: WindowFrame # Mono + node: plastitaniumWindowDiagonal # Mono diff --git a/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml b/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml index 1f69fa2e238..01709240b7b 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml @@ -41,8 +41,9 @@ acts: [ "Destruction" ] - type: IconSmooth base: swindow + key: shuttlewindows # Mono - type: Construction - graph: Window + graph: WindowFrame # Mono node: shuttleWindow - type: Appearance - type: DamageVisuals @@ -85,6 +86,9 @@ - type: Icon sprite: Structures/Windows/shuttle_window_diagonal.rsi state: state0 + - type: Construction # Mono + graph: WindowFrame # Mono + node: shuttleWindowDiagonal # Mono - type: Fixtures fixtures: fix1: diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/window.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/window.yml index 37682eb0913..e78dfc3d90b 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/window.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/window.yml @@ -46,14 +46,16 @@ amount: 2 doAfter: 3 - - to: shuttleWindow - steps: - - material: Plasteel - amount: 2 - - material: ReinforcedGlass - amount: 2 - doAfter: 4 - + # Mono : Shuttle windows now handled in WindowFrame construction graph + # + # - to: shuttleWindow + # steps: + # - material: Plasteel + # amount: 2 + # - material: ReinforcedGlass + # amount: 2 + # doAfter: 4 + - to: clockworkWindow steps: - material: ClockworkGlass @@ -223,34 +225,36 @@ doAfter: 2 - tool: Anchoring doAfter: 3 - - - node: shuttleWindow - entity: ShuttleWindow - edges: - - to: start - completed: - - !type:SpawnPrototype - prototype: SheetRGlass1 - amount: 2 - - !type:SpawnPrototype - prototype: SheetPlasteel1 - amount: 2 - - !type:DeleteEntity {} - steps: - #To-Do: Add deconstruct visuals - - tool: Welding - doAfter: 6 - - tool: Screwing - doAfter: 2 - - tool: Prying - doAfter: 3 - - tool: Welding - doAfter: 5 - - tool: Screwing - doAfter: 1 - - tool: Prying - doAfter: 2 - - tool: Welding - doAfter: 4 - - tool: Anchoring - doAfter: 1 \ No newline at end of file + + # Mono : Shuttle windows now handled in WindowFrame construction graph + # + # - node: shuttleWindow + # entity: ShuttleWindow + # edges: + # - to: start + # completed: + # - !type:SpawnPrototype + # prototype: SheetRGlass1 + # amount: 2 + # - !type:SpawnPrototype + # prototype: SheetPlasteel1 + # amount: 2 + # - !type:DeleteEntity {} + # steps: + # #To-Do: Add deconstruct visuals + # - tool: Welding + # doAfter: 6 + # - tool: Screwing + # doAfter: 2 + # - tool: Prying + # doAfter: 3 + # - tool: Welding + # doAfter: 5 + # - tool: Screwing + # doAfter: 1 + # - tool: Prying + # doAfter: 2 + # - tool: Welding + # doAfter: 4 + # - tool: Anchoring + # doAfter: 1 diff --git a/Resources/Prototypes/Recipes/Construction/structures.yml b/Resources/Prototypes/Recipes/Construction/structures.yml index eaa18322938..454597336db 100644 --- a/Resources/Prototypes/Recipes/Construction/structures.yml +++ b/Resources/Prototypes/Recipes/Construction/structures.yml @@ -545,7 +545,7 @@ - type: construction name: shuttle window id: ShuttleWindow - graph: Window + graph: WindowFrame # Mono startNode: start targetNode: shuttleWindow category: construction-category-structures diff --git a/Resources/Prototypes/_Mono/Entities/Structures/windows.yml b/Resources/Prototypes/_Mono/Entities/Structures/windows.yml index 8a19d1525da..c028e036210 100644 --- a/Resources/Prototypes/_Mono/Entities/Structures/windows.yml +++ b/Resources/Prototypes/_Mono/Entities/Structures/windows.yml @@ -216,6 +216,9 @@ state: state0 - type: ArmorThickness thickness: 30 + - type: Construction + graph: WindowFrame + node: plasturaniumWindowDiagonal - type: entity id: PlasturaniumWindowRadProof @@ -234,6 +237,9 @@ state: full - type: ArmorThickness thickness: 30 + - type: Construction + graph: WindowFrame + node: plasturaniumWindow #plastitanium but blocks rads 100% (industructible var.) @@ -272,3 +278,44 @@ state: full - type: ArmorThickness thickness: 30 + +# window frame for construction + +- type: entity + id: WindowFrame + parent: Girder + name: window frame + description: A large plasteel frame that might eventually become a window. + components: + - type: Construction + graph: WindowFrame + node: windowFrame + - type: Sprite + sprite: _Mono/Structures/Windows/shuttle_window_frame.rsi + state: bare + +- type: entity + id: ShuttleWindowFrame + parent: WindowFrame + name: shuttle window frame + description: A large steel frame reinforced with plasteel. It requires glass in order to become a window. + components: + - type: Construction + graph: WindowFrame + node: shuttleWindowFrame + - type: Sprite + sprite: _Mono/Structures/Windows/shuttle_window_frame.rsi + state: full + +- type: entity + id: PlastitWindowFrame + parent: WindowFrame + name: plastitanium window frame + description: A large steel frame reinforced with plastitanium. It requires glass in order to become a window. + components: + - type: Construction + graph: WindowFrame + node: plastitWindowFrame + - type: Sprite + sprite: _Mono/Structures/Windows/shuttle_window_frame.rsi + state: plastit_full diff --git a/Resources/Prototypes/_Mono/Recipes/Construction/Graphs/structures/window.yml b/Resources/Prototypes/_Mono/Recipes/Construction/Graphs/structures/window.yml new file mode 100644 index 00000000000..d4dbfcb4523 --- /dev/null +++ b/Resources/Prototypes/_Mono/Recipes/Construction/Graphs/structures/window.yml @@ -0,0 +1,384 @@ +- type: constructionGraph + id: WindowFrame + start: start + graph: + - node: start + edges: + - to: windowFrame + completed: + - !type:SnapToGrid + southRotation: false + steps: + - material: Plasteel + amount: 1 + doAfter: 1 + + - node: windowFrame + entity: WindowFrame + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetPlasteel1 + amount: 1 + - !type:DeleteEntity {} + conditions: + - !type:EntityAnchored + anchored: false + steps: + - tool: Screwing + doAfter: 1 + + - to: shuttleWindowFrame + completed: + - !type:SnapToGrid + southRotation: false + conditions: + - !type:EntityAnchored {} + steps: + - material: Plasteel + amount: 1 + doAfter: 2 + + - to: plastitWindowFrame + completed: + - !type:SnapToGrid + southRotation: false + conditions: + - !type:EntityAnchored {} + steps: + - material: Plastitanium + amount: 2 + doAfter: 4 + + - node: shuttleWindowFrame + entity: ShuttleWindowFrame + edges: + - to: windowFrame + completed: + - !type:GivePrototype + prototype: SheetPlasteel1 + amount: 1 + conditions: + - !type:EntityAnchored {} + steps: + - tool: Cutting + doAfter: 6 + - to: shuttleWindow + completed: + - !type:SnapToGrid + southRotation: true + conditions: + - !type:EntityAnchored { } + steps: + - material: ReinforcedGlass + amount: 2 + doAfter: 2 + - to: shuttleWindowDiagonal + completed: + - !type:SnapToGrid + southRotation: false + conditions: + - !type:EntityAnchored { } + steps: + - tool: Prying + doAfter: 2 + - material: ReinforcedGlass + amount: 1 + doAfter: 2 + + - node: plastitWindowFrame + entity: PlastitWindowFrame + edges: + - to: windowFrame + completed: + - !type:SpawnPrototype + prototype: ScrapSteel + amount: 1 + conditions: + - !type:EntityAnchored {} + steps: + - tool: Cutting + doAfter: 10 + - to: plastitaniumWindow + completed: + - !type:SnapToGrid + southRotation: true + conditions: + - !type:EntityAnchored { } + steps: + - tool: Screwing + doAfter: 1 + - material: Plastitanium + amount: 2 + doAfter: 4 + - tool: Welding + doAfter: 4 + - material: ReinforcedGlass + amount: 4 + doAfter: 2 + - to: plastitaniumWindowDiagonal + completed: + - !type:SnapToGrid + southRotation: false + conditions: + - !type:EntityAnchored { } + steps: + - tool: Prying + doAfter: 2 + - tool: Screwing + doAfter: 1 + - material: Plastitanium + amount: 1 + doAfter: 2 + - tool: Welding + doAfter: 4 + - material: ReinforcedGlass + amount: 2 + doAfter: 2 + - to: plasturaniumWindow + completed: + - !type:SnapToGrid + southRotation: true + conditions: + - !type:EntityAnchored { } + steps: + - material: UraniumDepleted + amount: 1 + doAfter: 4 + - tool: Screwing + doAfter: 1 + - material: Plastitanium + amount: 2 + doAfter: 4 + - tool: Welding + doAfter: 4 + - material: ReinforcedUraniumGlass + amount: 4 + doAfter: 2 + - to: plasturaniumWindowDiagonal + completed: + - !type:SnapToGrid + southRotation: false + conditions: + - !type:EntityAnchored { } + steps: + - tool: Hammering + doAfter: 2 + - material: UraniumDepleted + amount: 1 + doAfter: 4 + - tool: Screwing + doAfter: 1 + - material: Plastitanium + amount: 1 + doAfter: 2 + - tool: Welding + doAfter: 4 + - material: ReinforcedUraniumGlass + amount: 2 + doAfter: 2 + + - node: shuttleWindow + entity: ShuttleWindow + edges: + - to: shuttleWindowFrame + completed: + - !type:SpawnPrototype + prototype: SheetRGlass1 + amount: 2 + steps: # mostly the same as base, except a bit shorter, because it will result in a window frame you still need to unanchor/deconstruct at the end of it + - tool: Welding + doAfter: 6 + - tool: Screwing + doAfter: 2 + - tool: Prying + doAfter: 3 + - tool: Welding + doAfter: 5 + - tool: Screwing + doAfter: 1 + - tool: Prying + doAfter: 2 + - tool: Anchoring + doAfter: 1 + + - node: shuttleWindowDiagonal + entity: ShuttleWindowDiagonal + edges: + - to: shuttleWindowFrame + completed: + - !type:SpawnPrototype + prototype: SheetRGlass1 + amount: 1 + steps: + - tool: Welding + doAfter: 6 + - tool: Screwing + doAfter: 2 + - tool: Prying + doAfter: 3 + - tool: Welding + doAfter: 5 + - tool: Screwing + doAfter: 1 + - tool: Prying + doAfter: 2 + - tool: Anchoring + doAfter: 1 + + - node: plastitaniumWindow + entity: PlastitaniumWindow + edges: + - to: plastitWindowFrame + completed: + - !type:SpawnPrototype + prototype: SheetRGlass1 + amount: 4 + - !type:SpawnPrototype + prototype: ScrapSteel + amount: 1 + steps: # mostly the same as frontier, except a bit shorter, because it will result in a window frame you still need to unanchor/deconstruct at the end of it + - tool: Welding + doAfter: 5 + - tool: Screwing + doAfter: 2 + - tool: Prying + doAfter: 3 + - tool: Welding + doAfter: 5 + - tool: Screwing + doAfter: 2 + - tool: Anchoring + doAfter: 3 + - tool: Cutting + doAfter: 1 + - tool: Screwing + doAfter: 1 + - tool: Welding + doAfter: 5 + - tool: Prying + doAfter: 1 + - tool: Anchoring + doAfter: 1 + - tool: Welding + doAfter: 6 + - tool: Prying + doAfter: 1 + + - node: plastitaniumWindowDiagonal + entity: PlastitaniumWindowDiagonal + edges: + - to: plastitWindowFrame + completed: + - !type:SpawnPrototype + prototype: SheetRGlass1 + amount: 2 + - !type:SpawnPrototype + prototype: ScrapSteel + amount: 1 + steps: + - tool: Welding + doAfter: 5 + - tool: Screwing + doAfter: 2 + - tool: Prying + doAfter: 3 + - tool: Welding + doAfter: 5 + - tool: Screwing + doAfter: 2 + - tool: Anchoring + doAfter: 3 + - tool: Cutting + doAfter: 1 + - tool: Screwing + doAfter: 1 + - tool: Welding + doAfter: 5 + - tool: Prying + doAfter: 1 + - tool: Anchoring + doAfter: 1 + - tool: Welding + doAfter: 6 + - tool: Prying + doAfter: 1 + + - node: plasturaniumWindow + entity: PlasturaniumWindowRadProof + edges: + - to: plastitWindowFrame + completed: + - !type:SpawnPrototype + prototype: SheetRUGlass1 + amount: 4 + - !type:SpawnPrototype + prototype: ScrapSteel + amount: 1 + steps: # mostly the same as frontier, except a bit shorter, because it will result in a window frame you still need to unanchor/deconstruct at the end of it + - tool: Welding + doAfter: 5 + - tool: Screwing + doAfter: 2 + - tool: Prying + doAfter: 3 + - tool: Welding + doAfter: 5 + - tool: Screwing + doAfter: 2 + - tool: Anchoring + doAfter: 3 + - tool: Cutting + doAfter: 1 + - tool: Screwing + doAfter: 1 + - tool: Welding + doAfter: 5 + - tool: Prying + doAfter: 1 + - tool: Anchoring + doAfter: 1 + - tool: Welding + doAfter: 6 + - tool: Prying + doAfter: 1 + + - node: plasturaniumWindowDiagonal + entity: PlasturaniumWindowDiagonalRadProof + edges: + - to: plastitWindowFrame + completed: + - !type:SpawnPrototype + prototype: SheetRUGlass1 + amount: 2 + - !type:SpawnPrototype + prototype: ScrapSteel + amount: 1 + steps: + - tool: Welding + doAfter: 5 + - tool: Screwing + doAfter: 2 + - tool: Prying + doAfter: 3 + - tool: Welding + doAfter: 5 + - tool: Screwing + doAfter: 2 + - tool: Anchoring + doAfter: 3 + - tool: Cutting + doAfter: 1 + - tool: Screwing + doAfter: 1 + - tool: Welding + doAfter: 5 + - tool: Prying + doAfter: 1 + - tool: Anchoring + doAfter: 1 + - tool: Welding + doAfter: 6 + - tool: Prying + doAfter: 1 diff --git a/Resources/Prototypes/_Mono/Recipes/Construction/structures.yml b/Resources/Prototypes/_Mono/Recipes/Construction/structures.yml index afc9a56b584..9f83406655b 100644 --- a/Resources/Prototypes/_Mono/Recipes/Construction/structures.yml +++ b/Resources/Prototypes/_Mono/Recipes/Construction/structures.yml @@ -70,6 +70,101 @@ conditions: - !type:TileNotBlocked +- type: construction + name: plastitanium window + id: PlastitaniumWindow + graph: WindowFrame + startNode: start + targetNode: plastitaniumWindow + category: construction-category-structures + description: Extra sturdy to resist the pressure of FTL or sustain damage from munitions. + icon: + sprite: Structures/Windows/plastitanium_window.rsi + state: full + objectType: Structure + placementMode: SnapgridCenter + canRotate: false + canBuildInImpassable: true + conditions: + - !type:EmptyOrWindowValidInTile + - !type:NoWindowsInTile + +- type: construction + name: diagonal plastitanium window + id: PlastitaniumWindowDiagonal + graph: WindowFrame + startNode: start + targetNode: plastitaniumWindowDiagonal + category: construction-category-structures + description: Extra sturdy to resist the pressure of FTL or sustain damage from munitions. + icon: + sprite: Structures/Windows/plastitanium_window_diagonal.rsi + state: state0 + objectType: Structure + placementMode: SnapgridCenter + canRotate: true + canBuildInImpassable: true + conditions: + - !type:EmptyOrWindowValidInTile + - !type:NoWindowsInTile + +- type: construction + name: plasturanium window + id: PlasturaniumWindowRadProof + graph: WindowFrame + startNode: start + targetNode: plasturaniumWindow + category: construction-category-structures + description: A plastitanium window with added uranium to block radiation. + icon: + sprite: _Mono/Structures/Windows/plasturanium_window.rsi + state: full + objectType: Structure + placementMode: SnapgridCenter + canRotate: false + canBuildInImpassable: true + conditions: + - !type:EmptyOrWindowValidInTile + - !type:NoWindowsInTile + +- type: construction + name: diagonal plasturanium window + id: PlasturaniumWindowDiagonalRadProof + graph: WindowFrame + startNode: start + targetNode: plasturaniumWindowDiagonal + category: construction-category-structures + description: A plastitanium window with added uranium to block radiation. + icon: + sprite: _Mono/Structures/Windows/plasturanium_window_diagonal.rsi + state: state0 + objectType: Structure + placementMode: SnapgridCenter + canRotate: true + canBuildInImpassable: true + conditions: + - !type:EmptyOrWindowValidInTile + - !type:NoWindowsInTile + +- type: construction + name: diagonal shuttle window + id: ShuttleWindowDiagonal + graph: WindowFrame + startNode: start + targetNode: shuttleWindowDiagonal + category: construction-category-structures + canBuildInImpassable: true + description: Extra sturdy to resist the pressure of FTL or sustain damage from munitions. + conditions: + - !type:EmptyOrWindowValidInTile + - !type:NoWindowsInTile + icon: + sprite: Structures/Windows/shuttle_window_diagonal.rsi + state: state0 + objectType: Structure + placementMode: SnapgridCenter + canRotate: true + - type: construction name: directional uranium window id: UraniumWindowDirectional diff --git a/Resources/Prototypes/_NF/Recipes/Construction/Graphs/structures/plastitanium.yml b/Resources/Prototypes/_NF/Recipes/Construction/Graphs/structures/plastitanium.yml index 6cc95e71b7f..13ec30ec618 100644 --- a/Resources/Prototypes/_NF/Recipes/Construction/Graphs/structures/plastitanium.yml +++ b/Resources/Prototypes/_NF/Recipes/Construction/Graphs/structures/plastitanium.yml @@ -1,52 +1,54 @@ -- type: constructionGraph - id: Plastitanium - start: start - graph: - - node: start - edges: - - to: plastitaniumWindow - steps: - - material: UraniumGlass - amount: 2 - doAfter: 2 +# Mono : Plastitanium windows now handled in WindowFrame construction graph +# +# - type: constructionGraph +# id: Plastitanium +# start: start +# graph: +# - node: start +# edges: +# - to: plastitaniumWindow +# steps: +# - material: UraniumGlass +# amount: 2 +# doAfter: 2 - - node: plastitaniumWindow - entity: PlastitaniumWindow - edges: - - to: start - completed: - - !type:SpawnPrototype - prototype: SheetRGlass1 - amount: 2 - - !type:DeleteEntity {} - steps: - - tool: Welding - doAfter: 5 - - tool: Screwing - doAfter: 2 - - tool: Prying - doAfter: 3 - - tool: Welding - doAfter: 5 - - tool: Screwing - doAfter: 2 - - tool: Anchoring - doAfter: 3 - - tool: Cutting - doAfter: 1 - - tool: Screwing - doAfter: 1 - - tool: Welding - doAfter: 5 - - tool: Prying - doAfter: 1 - - tool: Anchoring - doAfter: 1 - - tool: Welding - doAfter: 10 - - tool: Prying - doAfter: 1 - - tool: Screwing - doAfter: 1 - - tool: Cutting - doAfter: 1 +# - node: plastitaniumWindow +# entity: PlastitaniumWindow +# edges: +# - to: start +# completed: +# - !type:SpawnPrototype +# prototype: SheetRGlass1 +# amount: 2 +# - !type:DeleteEntity {} +# steps: +# - tool: Welding +# doAfter: 5 +# - tool: Screwing +# doAfter: 2 +# - tool: Prying +# doAfter: 3 +# - tool: Welding +# doAfter: 5 +# - tool: Screwing +# doAfter: 2 +# - tool: Anchoring +# doAfter: 3 +# - tool: Cutting +# doAfter: 1 +# - tool: Screwing +# doAfter: 1 +# - tool: Welding +# doAfter: 5 +# - tool: Prying +# doAfter: 1 +# - tool: Anchoring +# doAfter: 1 +# - tool: Welding +# doAfter: 10 +# - tool: Prying +# doAfter: 1 +# - tool: Screwing +# doAfter: 1 +# - tool: Cutting +# doAfter: 1 diff --git a/Resources/Textures/_Mono/Structures/Windows/shuttle_window_frame.rsi/bare.png b/Resources/Textures/_Mono/Structures/Windows/shuttle_window_frame.rsi/bare.png new file mode 100644 index 0000000000000000000000000000000000000000..8b32483f9d505ec040833bbc882e945a30ead032 GIT binary patch literal 753 zcmVC&{_}#MG(>4*w+$rJ68oI^jzM19)9on9nL)$?2)`$Fr0HxD3gmh2ak7oooL&$f7xowOWwkkv^(CHkad}Dd zu$&PLVuT6dBT1PJ@{|ZlF3Qe2`zGqXMK;Bw%3Gs?E{-fY@diXKOV_mIjOb~3@>Hz7 z|KF#PnVM{L_k^J5)iggx!L<*ys%ie7nr7_`94~NPZ2323Pcz@5S6iC@7`!`hdDGI8 z2XM6uL(iI`D|N{s$DYZ+#|88!VBjA5)*8EN-gEv0@oo7cs#6010qNS#tmYD4GBOD4GEmIw7(E00AjUL_t(o!|hi)4udcZ4N)W(RyH=o!bvy) z$K(Keou=t! zFVX;5Fbu=l2BN#bwSC`{!T(Ymf#h)6HX^3YES!EIKDgo%?h0PZa`Oq`rb4-Br5 zKu$fKgk;67LpIVGcF z2B9w1((hQ Date: Sun, 5 Jul 2026 00:03:46 -0700 Subject: [PATCH 3/4] fix plasturanium window sprite --- .../plasturanium_window.rsi/ptwindow7.png | Bin 249 -> 590 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Resources/Textures/_Mono/Structures/Windows/plasturanium_window.rsi/ptwindow7.png b/Resources/Textures/_Mono/Structures/Windows/plasturanium_window.rsi/ptwindow7.png index 0dabc26917e54a281eb917ebaf0a5ac5ee087180..36c58111e9c30e86f8f0f96af62e4f6eedff6932 100644 GIT binary patch literal 590 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEV9d>Qb`Ho)PG(@xm{>Y-xA)-y zkz@7O+>f%$mIxG{Snz0p0@u;N*AIf0T;bX`P3@baN~TAYOAMOEzffDAbnDKaCb2q2A7x(` zNl)o{#uGh`{4B4%7r6Y@+X=6}{@*)mb*bfJ$$;xRGNv-yHFPcu#OqphZEvyet*MIq z5m0eqDr4*VDeKt(tg#UPusg|o>YSDduU0-?6|p`^`F+$O=0kg@MH-#@yh1yIpS+^Jg?slSeGk86`9=BRTkbJ; zUz2SVU6%Exj9>A|C{CD%$`?BtryW&T{mD}O`-G_J@g=;~zc1*2 zSN67dvdhrOZ3x%|41dl7kI3SQ=^K@RY(_?l8y3PqM!TnrV@SoVx3@QP9#9Z)2-KhL z`K+Mn%wv{witDBc261?O`1{X6E-E5s$=Rnx_QszVf3-5MUwW7ss1*sQi`D->znc+B n1UvIU`o`Z3-&k$XRBqTK&bgGQ?%HX+9Uy(4u6{1-oD!M*bc*+Aq#K*Hu# z#RiVg6PwO8Myz%Ib9nWEegBVaD)O9CdT`IT@99SMwda$K_WQQIcVOJou#6$fA(%mT zfo6l)1rZ1C46X&NCaf2jW|i)0*mvH)@(-s5ngmk@qc2pSaUK7RMfZi}>X~4=kR)M- lezAAR`^S%LG@7EHj60tT)V?s@>I?J>gQu&X%Q~loCIFdASlj>r From 39c3b69cef6cc4492d615b32444dfcee4a4daa8c Mon Sep 17 00:00:00 2001 From: tkirkby Date: Sun, 5 Jul 2026 01:37:15 -0700 Subject: [PATCH 4/4] tweak prices to avoid increasing in price after deconstruction --- .../Prototypes/_Mono/Entities/Structures/windows.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Resources/Prototypes/_Mono/Entities/Structures/windows.yml b/Resources/Prototypes/_Mono/Entities/Structures/windows.yml index c028e036210..54337e3a7cc 100644 --- a/Resources/Prototypes/_Mono/Entities/Structures/windows.yml +++ b/Resources/Prototypes/_Mono/Entities/Structures/windows.yml @@ -219,6 +219,8 @@ - type: Construction graph: WindowFrame node: plasturaniumWindowDiagonal + - type: StaticPrice + price: 125 - type: entity id: PlasturaniumWindowRadProof @@ -240,6 +242,8 @@ - type: Construction graph: WindowFrame node: plasturaniumWindow + - type: StaticPrice + price: 125 #plastitanium but blocks rads 100% (industructible var.) @@ -293,6 +297,8 @@ - type: Sprite sprite: _Mono/Structures/Windows/shuttle_window_frame.rsi state: bare + - type: StaticPrice + price: 30 - type: entity id: ShuttleWindowFrame @@ -306,6 +312,8 @@ - type: Sprite sprite: _Mono/Structures/Windows/shuttle_window_frame.rsi state: full + - type: StaticPrice + price: 60 - type: entity id: PlastitWindowFrame @@ -319,3 +327,5 @@ - type: Sprite sprite: _Mono/Structures/Windows/shuttle_window_frame.rsi state: plastit_full + - type: StaticPrice + price: 80