From efb424834add46f88b8c404a93683f5a83abf21f Mon Sep 17 00:00:00 2001 From: Nim <128169402+Nimfar11@users.noreply.github.com> Date: Mon, 15 Jan 2024 14:49:08 +0200 Subject: [PATCH] Construction Blast door (#24050) * construction blast door * fix * price * fix2 * hem * xif * Static --- .../Structures/Doors/Shutter/blast_door.yml | 53 +++++++++ .../Graphs/structures/blast_door.yml | 109 ++++++++++++++++++ .../Recipes/Construction/structures.yml | 16 ++- .../Doors/Shutters/blastdoor.rsi/assembly.png | Bin 0 -> 554 bytes .../Doors/Shutters/blastdoor.rsi/meta.json | 51 +++++++- 5 files changed, 227 insertions(+), 2 deletions(-) create mode 100644 Resources/Prototypes/Recipes/Construction/Graphs/structures/blast_door.yml create mode 100644 Resources/Textures/Structures/Doors/Shutters/blastdoor.rsi/assembly.png diff --git a/Resources/Prototypes/Entities/Structures/Doors/Shutter/blast_door.yml b/Resources/Prototypes/Entities/Structures/Doors/Shutter/blast_door.yml index 1673ccd0cb..97f3c1b9e3 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Shutter/blast_door.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Shutter/blast_door.yml @@ -27,6 +27,16 @@ - type: Damageable damageContainer: StructuralInorganic damageModifierSet: StrongMetallic + - type: ContainerFill + containers: + board: [ DoorElectronics ] + - type: Construction + graph: BlastDoor + node: blastdoor + containers: + - board + - type: StaticPrice + price: 280 - type: entity id: BlastDoorOpen @@ -43,3 +53,46 @@ airBlocked: false - type: RadiationBlocker enabled: false + +- type: entity + id: BlastDoorFrame + parent: BaseStructureDynamic + name: blast door frame + description: This one says 'BLAST DONGER'. + components: + - type: Sprite + sprite: Structures/Doors/Shutters/blastdoor.rsi + state: assembly + - type: InteractionOutline + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 300 + behaviors: + - !type:DoActsBehavior + acts: ["Destruction"] + - type: Physics + bodyType: Static + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.45,-0.45,0.45,0.45" + density: 55 + mask: + - Impassable + - HighImpassable + layer: + - HighImpassable + - type: Transform + noRot: true + - type: Construction + graph: BlastDoor + node: frame1 + placement: + mode: SnapgridCenter diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/blast_door.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/blast_door.yml new file mode 100644 index 0000000000..ad84d830a7 --- /dev/null +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/blast_door.yml @@ -0,0 +1,109 @@ +- type: constructionGraph + id: BlastDoor + start: start + graph: + - node: start + edges: + - to: frame1 + completed: + - !type:SetAnchor + value: false + steps: + - material: Plasteel + amount: 10 + doAfter: 3 + + - node: frame1 + entity: BlastDoorFrame + actions: + - !type:SnapToGrid {} + - !type:SetAnchor {} + edges: + - to: frame2 + conditions: + - !type:EntityAnchored {} + steps: + - material: Cable + amount: 5 + doAfter: 2 + - to: start + conditions: + - !type:EntityAnchored + anchored: false + completed: + - !type:SpawnPrototype + prototype: SheetPlasteel1 + amount: 10 + - !type:DeleteEntity {} + steps: + - tool: Welding + doAfter: 4 + + - node: frame2 + edges: + - to: frame3 + conditions: + - !type:EntityAnchored {} + steps: + - tag: DoorElectronics + store: board + name: Door Electronics + icon: + sprite: "Objects/Misc/module.rsi" + state: "door_electronics" + doAfter: 2 + - to: frame1 + completed: + - !type:SpawnPrototype + prototype: CableApcStack1 + amount: 5 + steps: + - tool: Cutting + doAfter: 4 + - tool: Prying + doAfter: 2 + + - node: frame3 + edges: + - to: frame4 + conditions: + - !type:EntityAnchored {} + steps: + - tool: Screwing + doAfter: 2 + - tool: Prying + doAfter: 3 + + - node: frame4 + edges: + - to: blastdoor + conditions: + - !type:EntityAnchored {} + steps: + - tool: Anchoring + doAfter: 2 + - to: frame2 + conditions: + - !type:EntityAnchored {} + completed: + - !type:EmptyAllContainers + pickup: true + emptyAtUser: true + steps: + - tool: Screwing + doAfter: 4 + - tool: Anchoring + doAfter: 3 + - tool: Prying + doAfter: 3 + + - node: blastdoor + entity: BlastDoorOpen + edges: + - to: frame4 + conditions: + - !type:DoorWelded + welded: true + steps: + - tool: Anchoring + doAfter: 2 diff --git a/Resources/Prototypes/Recipes/Construction/structures.yml b/Resources/Prototypes/Recipes/Construction/structures.yml index c9c7a8fe45..b9e3477f3c 100644 --- a/Resources/Prototypes/Recipes/Construction/structures.yml +++ b/Resources/Prototypes/Recipes/Construction/structures.yml @@ -214,7 +214,6 @@ conditions: - !type:TileNotBlocked - - type: construction name: diagonal shuttle wall id: DiagonalShuttleWall @@ -715,6 +714,21 @@ placementMode: SnapgridCenter canBuildInImpassable: true +- type: construction + name: blast door + id: BlastDoor + graph: BlastDoor + startNode: start + targetNode: blastdoor + category: construction-category-structures + description: This one says 'BLAST DONGER'. + icon: + sprite: Structures/Doors/Shutters/blastdoor.rsi + state: closed + objectType: Structure + placementMode: SnapgridCenter + canBuildInImpassable: true + - type: construction name: catwalk id: Catwalk diff --git a/Resources/Textures/Structures/Doors/Shutters/blastdoor.rsi/assembly.png b/Resources/Textures/Structures/Doors/Shutters/blastdoor.rsi/assembly.png new file mode 100644 index 0000000000000000000000000000000000000000..f52f0ec99d0e75f19f80ed48433f6659e717a2c4 GIT binary patch literal 554 zcmV+_0@eMAP)Px$d2?;-ek==nX zaR~$Kv5+#^v2m$`zFMJjF|_L7x7_8GzVExo_xkP<&bh%6NGX$J>t!g*U#-{c5JK3% zY&NsRS(X_oF&JP4K;`*c1ze2VZ36&8h@=1AcfdI}l-C7g3>Br6 z4di)_(By=>-45e++Z07%W7Y$%qT9^|0HC!FtpRtt9rpP?Re(&WwGQe9G9Zx>4l3Yo z2t`h)+?*f8ydLoVFa);4W%6=egVzIYdA7r40)+1Z65;hgnx=RsrEBmmpq!;1Ahj{N zVE@6sJO^TSLFqX_8$yx0B3ur-KR5^OFE2xLTfAJ?$~|zkSVZjtH~youfO3|4Aa)o0 z%~?PPk-H%jxlaVaR)7{_&H@rq>VfTWnOr=yOpGod4)@;cfwRZwP~2|r|5*Uw56*(> zz6WA`7tm|@YR>~z-#g*En4n!iGiK0g7^H8U)&tG?9K~o9h1{337>&@J&p#^gBm`Ka sfubm)cY)FX>-X^lfGLIKw?EHc0Sk0#lo=D^>Hq)$07*qoM6N<$f}+Lv`~Uy| literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Doors/Shutters/blastdoor.rsi/meta.json b/Resources/Textures/Structures/Doors/Shutters/blastdoor.rsi/meta.json index a8d4b41fdd..905fe8a64e 100644 --- a/Resources/Textures/Structures/Doors/Shutters/blastdoor.rsi/meta.json +++ b/Resources/Textures/Structures/Doors/Shutters/blastdoor.rsi/meta.json @@ -1 +1,50 @@ -{"name":1,"size":{"x":32,"y":32},"states":[{"name":"closing","directions":1,"delays":[[0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.4]]},{"name":"opening","directions":1,"delays":[[0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.4]]},{"name":"open","directions":1},{"name":"closed","directions":1}],"license":"CC-BY-SA-3.0","copyright":"Tgstation at 97b4295aca9f31a750456e40730d05b5837e39fc","version":1} \ No newline at end of file +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Tgstation at 97b4295aca9f31a750456e40730d05b5837e39fc", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "assembly" + }, + { + "name": "closing", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.4 + ] + ] + }, + { + "name": "opening", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.4 + ] + ] + }, + { + "name": "open" + }, + { + "name": "closed" + } + ] +} -- 2.51.2