From 743063e4f0c601fe7b496cb82b7721c58fcd4454 Mon Sep 17 00:00:00 2001 From: Flareguy <78941145+Flareguy@users.noreply.github.com> Date: Sat, 16 Sep 2023 07:50:48 -0500 Subject: [PATCH] Ports /vg/station barricade sprites & slightly buffs them (#19840) --- .../Entities/Structures/Walls/barricades.yml | 51 -------- .../Entities/Structures/barricades.yml | 111 ++++++++++++++++++ .../Graphs/structures/barricades.yml | 15 ++- .../Recipes/Construction/structures.yml | 6 +- .../Walls/barricades.rsi/barricadewooden.png | Bin 409 -> 0 bytes .../Structures/Walls/barricades.rsi/meta.json | 14 --- .../Structures/barricades.rsi/barricade.png | Bin 0 -> 329 bytes .../barricades.rsi/barricade_directional.png | Bin 0 -> 981 bytes .../barricades.rsi/barricade_full.png | Bin 0 -> 361 bytes .../Structures/barricades.rsi/meta.json | 23 ++++ 10 files changed, 146 insertions(+), 74 deletions(-) delete mode 100644 Resources/Prototypes/Entities/Structures/Walls/barricades.yml create mode 100644 Resources/Prototypes/Entities/Structures/barricades.yml delete mode 100644 Resources/Textures/Structures/Walls/barricades.rsi/barricadewooden.png delete mode 100644 Resources/Textures/Structures/Walls/barricades.rsi/meta.json create mode 100644 Resources/Textures/Structures/barricades.rsi/barricade.png create mode 100644 Resources/Textures/Structures/barricades.rsi/barricade_directional.png create mode 100644 Resources/Textures/Structures/barricades.rsi/barricade_full.png create mode 100644 Resources/Textures/Structures/barricades.rsi/meta.json diff --git a/Resources/Prototypes/Entities/Structures/Walls/barricades.yml b/Resources/Prototypes/Entities/Structures/Walls/barricades.yml deleted file mode 100644 index 666a237e5b..0000000000 --- a/Resources/Prototypes/Entities/Structures/Walls/barricades.yml +++ /dev/null @@ -1,51 +0,0 @@ -- type: entity - id: Barricade - parent: BaseStructure - name: barricade - components: - - type: InteractionOutline - - type: Construction - graph: Barricade - node: barricadewooden - - type: Sprite - sprite: Structures/Walls/barricades.rsi - state: barricadewooden - - type: Physics - - type: Fixtures - fixtures: - fix1: - shape: - !type:PhysShapeAabb {} - mask: - - FullTileMask - layer: - - WallLayer - - type: Tag - tags: - - Wooden - - type: Damageable - damageModifierSet: Wood - damageContainer: Inorganic - - type: Destructible - thresholds: - - trigger: - !type:DamageTrigger - damage: 50 - behaviors: - - !type:SpawnEntitiesBehavior - spawn: - MaterialWoodPlank1: - min: 3 - max: 3 - - !type:DoActsBehavior - acts: [ "Destruction" ] - - type: AtmosExposed - - type: Flammable - fireSpread: true - damage: - types: - Heat: 1 #per second, scales with number of fire 'stacks' - - type: Appearance - - type: FireVisuals - sprite: Effects/fire.rsi - normalState: 1 diff --git a/Resources/Prototypes/Entities/Structures/barricades.yml b/Resources/Prototypes/Entities/Structures/barricades.yml new file mode 100644 index 0000000000..8cdd1c4786 --- /dev/null +++ b/Resources/Prototypes/Entities/Structures/barricades.yml @@ -0,0 +1,111 @@ +#None of these besides the full barricade are constructible yet since I can't understand code, and they need to do stuff like go over airlocks / windows. +#Consider porting the barricade kit from /vg/ if you do make them constructible, along with their HP values. Or don't. + +#Base barricade +#A lot of components here are intentionally ommitted in case someone wants to make barricades that are made out of things other than wood. +- type: entity + id: BaseBarricade + description: A barricade made out of wood planks. It looks like it can take a few solid hits. + parent: BaseStructure + name: wooden barricade + abstract: true + components: + - type: InteractionOutline + - type: Sprite + sprite: Structures/barricades.rsi + state: barricade_full + drawdepth: BlastDoors + noRot: true + - type: Physics + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb {} + mask: + - FullTileMask + layer: + - WallLayer + - type: Damageable + damageModifierSet: Wood + damageContainer: Inorganic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 60 + behaviors: + - !type:SpawnEntitiesBehavior + spawn: + MaterialWoodPlank1: + min: 3 + max: 3 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: AtmosExposed + +#Regular Barricade +- type: entity + id: Barricade + parent: BaseBarricade + components: + - type: Construction + graph: Barricade + node: barricadefull + - type: Tag + tags: + - Wooden + - type: Flammable + fireSpread: true + damage: + types: + Heat: 1 #per second, scales with number of fire 'stacks' + - type: Appearance + - type: FireVisuals + sprite: Effects/fire.rsi + normalState: 1 + +#Structure-Mounted Barricade +- type: entity + id: BarricadeBlock + parent: Barricade + components: + - type: Sprite + sprite: Structures/barricades.rsi + state: barricade + +#Directional Barricade +- type: entity + id: BarricadeDirectional + parent: BaseBarricade + placement: + mode: SnapgridCenter +#A bunch of this is taken straight from dirwindows and there is a chance that I may have fucked something up. Probably not though + components: + - type: Sprite + sprite: Structures/barricades.rsi + state: barricade_directional + noRot: false #Results in smoother rotation when turning the camera, the sprite's dirs are just it rotated anyways so there's no reason to not set this. + - type: Physics + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.39,0.49,-0.36" + mask: + - FullTileMask + layer: + - WallLayer + - type: Tag + tags: + - Wooden + - type: Flammable + fireSpread: true + damage: + types: + Heat: 1 #per second, scales with number of fire 'stacks' + - type: Appearance + - type: FireVisuals + sprite: Effects/fire.rsi + normalState: 1 \ No newline at end of file diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/barricades.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/barricades.yml index 152ad1e846..d5553af83b 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/barricades.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/barricades.yml @@ -1,27 +1,30 @@ -- type: constructionGraph +#Due to limitations with placement conditions in the construction system, the other kinds of non-fulltile barricades are currently not constructible. +#This may make it sound like it needs some big refactor to be possible, but make no mistake, it is 100% due to my own technical incompetence. +- type: constructionGraph id: Barricade start: start graph: - node: start edges: - - to: barricadewooden + - to: barricadefull steps: - material: WoodPlank - amount: 5 + amount: 4 doAfter: 3 - - node: barricadewooden + - node: barricadefull entity: Barricade edges: - to: start completed: - !type:SpawnPrototype prototype: MaterialWoodPlank1 - amount: 4 #returns 1 less as one breaks + amount: 3 #returns 1 less as one breaks - !type:DeleteEntity {} conditions: - !type:EntityAnchored anchored: true steps: - tool: Prying - doAfter: 5 \ No newline at end of file + doAfter: 5 + diff --git a/Resources/Prototypes/Recipes/Construction/structures.yml b/Resources/Prototypes/Recipes/Construction/structures.yml index 648bc19673..a5045d8134 100644 --- a/Resources/Prototypes/Recipes/Construction/structures.yml +++ b/Resources/Prototypes/Recipes/Construction/structures.yml @@ -564,12 +564,12 @@ id: Barricade graph: Barricade startNode: start - targetNode: barricadewooden + targetNode: barricadefull category: construction-category-structures description: An improvised barricade made out of wooden planks. icon: - sprite: Structures/Walls/barricades.rsi - state: barricadewooden + sprite: Structures/barricades.rsi + state: barricade_full objectType: Structure placementMode: SnapgridCenter canBuildInImpassable: false diff --git a/Resources/Textures/Structures/Walls/barricades.rsi/barricadewooden.png b/Resources/Textures/Structures/Walls/barricades.rsi/barricadewooden.png deleted file mode 100644 index c65024c63429c20f612e0d8637d4654cdf2282df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 409 zcmV;K0cQS*P)i>Z zKP5FUDY2+1GdVFORf&r;C9|j)C}YUQnO2mTn+jnoE4cc(fGq$3k5(Qu91XYL0002I zNkl-4>b$0LMM`%kCdM=9~6I(L&&1K3>3?5MsqjRwc1_A&7lm)YG?QvfHM zXSM{=)(ma}lG@i*1T?#Q(JVly)B=R26$r)cLemOaiEe@6jt&Ze{>b2_gpnZq*O#N0Ky?2nD+ix2e^=85EL zJ#?BKWVqg1OW93LHE}zq^5ji{X#wY)f(;JM)?IgpHF%w}j=Z_TQk(EMJO;&LA<00O OGkCiCxvXPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D18PY`K~#8N?V3G{ z)j$-6vs(y)HiCkzg{_TXW1-FML~OM22iVwdW8p8bu-VqeA7G=6h}~_pun}x*EnEZz z8wJ5am>YIq#hL%-w2cX7~2hzu|HgiV)z&^(!IQ&FeSs zn`@VLn$u^_1xq)S9s11ea6LOWA3SM(eE)hN$u7Fek+>(6kITp|iivjXUw;%VLy%+DctnKHo-)-w+4^`HnEG>WPjR71b6S{Gd9c(_8 zxQAn#%3?2tRRnB;)>1#-1Z9UlvxqJbu4iF(0m5$<#)$1L%yPNp`PyaoHF*=R}-A)5d;{GUC%6Ry^=_FQ9A76FFNG#1L|5W!slInPph z47v6Xt^!!+*;|Yu*CxtMfY|x5(;DS-h~OFltn}3K)&aX+wphE$Q=jK};kMXN1Xyq+ z-YyG8OZ+bo;k9gbjQ|`X>Hm6wbE#G(kDdEq>#42>t`QJ#iM37Ej?s$1Mhg@Hsk%ol z0(fbgL~12Sm#||%SKX;`6F{w{zHD1>$V#xU{*<^z0C@J_DR39yfAJQucmcd|7huQ{ z+ME<00p0?-381B{=K8}fg;VvX#5Dp~%-AHD?oxvr|L_)Fb*IKv0Q(()Utm$gl2@A~ zK}(ag=&|)w*8^7p=)WXdR(+Y)Onprzk6o>8>#42>t^%l4mBf%SpsViGxC)?Fg~Kj| zQ_(UdZUW!{El2p`#Mn`s^3B9|#zJZ{rIF3UC&9L>4nJ z@ErzW#^d=bQhV`3d8N zl0WTO=PV7Z;JWIu?w#1B1M~0g;dF2Ns28IALvc&bUq9h_f`1L&W%dXeDf|86F^e{x zwLs=}T8lw)eoOI+K%o=SZd|R&{>@HLXSpSF_lh?&y-R;+^68Z9oVI##tp|PKd2Mx^ vGM}QVTn&y~|0L#-zHsyUeG%Q+y&oBOTw`5W`q4uO=sN~aS3j3^P6