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..54337e3a7cc 100644 --- a/Resources/Prototypes/_Mono/Entities/Structures/windows.yml +++ b/Resources/Prototypes/_Mono/Entities/Structures/windows.yml @@ -216,6 +216,11 @@ state: state0 - type: ArmorThickness thickness: 30 + - type: Construction + graph: WindowFrame + node: plasturaniumWindowDiagonal + - type: StaticPrice + price: 125 - type: entity id: PlasturaniumWindowRadProof @@ -234,6 +239,11 @@ state: full - type: ArmorThickness thickness: 30 + - type: Construction + graph: WindowFrame + node: plasturaniumWindow + - type: StaticPrice + price: 125 #plastitanium but blocks rads 100% (industructible var.) @@ -272,3 +282,50 @@ 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: StaticPrice + price: 30 + +- 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: StaticPrice + price: 60 + +- 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 + - type: StaticPrice + price: 80 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/plasturanium_window.rsi/ptwindow7.png b/Resources/Textures/_Mono/Structures/Windows/plasturanium_window.rsi/ptwindow7.png index 0dabc26917e..36c58111e9c 100644 Binary files a/Resources/Textures/_Mono/Structures/Windows/plasturanium_window.rsi/ptwindow7.png and b/Resources/Textures/_Mono/Structures/Windows/plasturanium_window.rsi/ptwindow7.png differ 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 00000000000..8b32483f9d5 Binary files /dev/null and b/Resources/Textures/_Mono/Structures/Windows/shuttle_window_frame.rsi/bare.png differ 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 00000000000..f17f9a0c8df Binary files /dev/null and b/Resources/Textures/_Mono/Structures/Windows/shuttle_window_frame.rsi/full.png differ 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..a247a361065 --- /dev/null +++ b/Resources/Textures/_Mono/Structures/Windows/shuttle_window_frame.rsi/meta.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Made by tkirby (github) based on the existing shuttle window sprite, plastitanium window sprite, and reinforced girder sprite.", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "bare" + }, + { + "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 00000000000..d67fe852778 Binary files /dev/null and b/Resources/Textures/_Mono/Structures/Windows/shuttle_window_frame.rsi/plastit_full.png differ