From ac5305ef1dfd62fb034eca29b53517c680d2b205 Mon Sep 17 00:00:00 2001 From: mkanke-real Date: Tue, 13 May 2025 23:25:51 -0400 Subject: [PATCH 1/7] Decorations pt1 (#759) (cherry picked from commit 116b0bf38a077ae72819be6cf9fb74fb05475f6b) --- .../Decorations/WoodenSupportWithLight.yml | 92 +++ .../Entities/Structures/BrokenCatwalk.yml | 58 ++ .../Entities/Structures/Curbs.yml | 722 ++++++++++++++++++ .../Entities/Structures/Piping/mailpiping.yml | 165 ++++ .../Construction/Graphs/Structures/curbs.yml | 371 +++++++++ .../Graphs/Structures/mailpipes.yml | 236 ++++++ .../Graphs/Structures/structures.yml | 283 +++++++ .../Recipes/Construction/Graphs/utilities.yml | 153 ++++ .../WoodenSupportLight.rsi/base.png | Bin 0 -> 503 bytes .../WoodenSupportLight.rsi/broken.png | Bin 0 -> 503 bytes .../WoodenSupportLight.rsi/burned.png | Bin 0 -> 554 bytes .../WoodenSupportLight.rsi/empty.png | Bin 0 -> 476 bytes .../WoodenSupportLight.rsi/glow.png | Bin 0 -> 280 bytes .../WoodenSupportLight.rsi/meta.json | 26 + .../Structures/brokencatwalk.rsi/broken.png | Bin 0 -> 478 bytes .../brokencatwalk.rsi/catwalk_0.png | Bin 0 -> 500 bytes .../brokencatwalk.rsi/catwalk_1.png | Bin 0 -> 678 bytes .../brokencatwalk.rsi/catwalk_2.png | Bin 0 -> 623 bytes .../brokencatwalk.rsi/catwalk_3.png | Bin 0 -> 678 bytes .../brokencatwalk.rsi/catwalk_4.png | Bin 0 -> 794 bytes .../brokencatwalk.rsi/catwalk_5.png | Bin 0 -> 513 bytes .../brokencatwalk.rsi/catwalk_6.png | Bin 0 -> 794 bytes .../brokencatwalk.rsi/catwalk_7.png | Bin 0 -> 433 bytes .../Structures/brokencatwalk.rsi/meta.json | 46 ++ .../Structures/curbs.rsi/brass_curb.png | Bin 0 -> 163 bytes .../curbs.rsi/brass_curb_corner.png | Bin 0 -> 222 bytes .../curbs.rsi/brass_curb_inside_corner.png | Bin 0 -> 136 bytes .../curbs.rsi/brass_curb_square.png | Bin 0 -> 327 bytes .../Structures/curbs.rsi/brass_curb_ubend.png | Bin 0 -> 264 bytes .../Structures/curbs.rsi/gold_curb.png | Bin 0 -> 162 bytes .../Structures/curbs.rsi/gold_curb_corner.png | Bin 0 -> 226 bytes .../curbs.rsi/gold_curb_inside_corner.png | Bin 0 -> 136 bytes .../Structures/curbs.rsi/gold_curb_square.png | Bin 0 -> 332 bytes .../Structures/curbs.rsi/gold_curb_ubend.png | Bin 0 -> 265 bytes .../Structures/curbs.rsi/hydrogen_curb.png | Bin 0 -> 157 bytes .../curbs.rsi/hydrogen_curb_corner.png | Bin 0 -> 220 bytes .../curbs.rsi/hydrogen_curb_inside_corner.png | Bin 0 -> 132 bytes .../curbs.rsi/hydrogen_curb_square.png | Bin 0 -> 301 bytes .../curbs.rsi/hydrogen_curb_ubend.png | Bin 0 -> 246 bytes .../Structures/curbs.rsi/meta.json | 72 ++ .../Structures/curbs.rsi/steel_curb.png | Bin 0 -> 151 bytes .../curbs.rsi/steel_curb_corner.png | Bin 0 -> 210 bytes .../curbs.rsi/steel_curb_inside_corner.png | Bin 0 -> 128 bytes .../curbs.rsi/steel_curb_square.png | Bin 0 -> 309 bytes .../Structures/curbs.rsi/steel_curb_ubend.png | Bin 0 -> 261 bytes .../Structures/mailpipes.rsi/conpipe-c.png | Bin 0 -> 3807 bytes .../Structures/mailpipes.rsi/conpipe-j1.png | Bin 0 -> 4470 bytes .../Structures/mailpipes.rsi/conpipe-j1s.png | Bin 0 -> 5013 bytes .../Structures/mailpipes.rsi/conpipe-j2.png | Bin 0 -> 4500 bytes .../Structures/mailpipes.rsi/conpipe-j2s.png | Bin 0 -> 5031 bytes .../Structures/mailpipes.rsi/conpipe-s.png | Bin 0 -> 1456 bytes .../Structures/mailpipes.rsi/conpipe-t.png | Bin 0 -> 3843 bytes .../mailpipes.rsi/conpipe-tagger.png | Bin 0 -> 2353 bytes .../Structures/mailpipes.rsi/conpipe-y.png | Bin 0 -> 4356 bytes .../Structures/mailpipes.rsi/meta.json | 151 ++++ .../Structures/mailpipes.rsi/pipe-b.png | Bin 0 -> 1272 bytes .../Structures/mailpipes.rsi/pipe-bf.png | Bin 0 -> 1387 bytes .../Structures/mailpipes.rsi/pipe-c.png | Bin 0 -> 4411 bytes .../Structures/mailpipes.rsi/pipe-cf.png | Bin 0 -> 4930 bytes .../Structures/mailpipes.rsi/pipe-d.png | Bin 0 -> 2660 bytes .../Structures/mailpipes.rsi/pipe-j1.png | Bin 0 -> 5068 bytes .../Structures/mailpipes.rsi/pipe-j1f.png | Bin 0 -> 5425 bytes .../Structures/mailpipes.rsi/pipe-j1s.png | Bin 0 -> 5599 bytes .../Structures/mailpipes.rsi/pipe-j1sf.png | Bin 0 -> 5783 bytes .../Structures/mailpipes.rsi/pipe-j2.png | Bin 0 -> 5032 bytes .../Structures/mailpipes.rsi/pipe-j2f.png | Bin 0 -> 14289 bytes .../Structures/mailpipes.rsi/pipe-j2s.png | Bin 0 -> 5581 bytes .../Structures/mailpipes.rsi/pipe-j2sf.png | Bin 0 -> 5724 bytes .../Structures/mailpipes.rsi/pipe-s.png | Bin 0 -> 1418 bytes .../Structures/mailpipes.rsi/pipe-sf.png | Bin 0 -> 1443 bytes .../Structures/mailpipes.rsi/pipe-t.png | Bin 0 -> 3843 bytes .../mailpipes.rsi/pipe-tagger-partial.png | Bin 0 -> 2222 bytes .../Structures/mailpipes.rsi/pipe-tagger.png | Bin 0 -> 2597 bytes .../Structures/mailpipes.rsi/pipe-tf.png | Bin 0 -> 4295 bytes .../Structures/mailpipes.rsi/pipe-u.png | Bin 0 -> 3843 bytes .../Structures/mailpipes.rsi/pipe-y.png | Bin 0 -> 5423 bytes .../Structures/mailpipes.rsi/pipe-yf.png | Bin 0 -> 14477 bytes .../signal-router-flipped-free.png | Bin 0 -> 4933 bytes .../mailpipes.rsi/signal-router-flipped.png | Bin 0 -> 5462 bytes .../mailpipes.rsi/signal-router-free.png | Bin 0 -> 4937 bytes .../mailpipes.rsi/signal-router.png | Bin 0 -> 5501 bytes 81 files changed, 2375 insertions(+) create mode 100644 Resources/Prototypes/_Funkystation/Entities/Objects/Decorations/WoodenSupportWithLight.yml create mode 100644 Resources/Prototypes/_Funkystation/Entities/Structures/BrokenCatwalk.yml create mode 100644 Resources/Prototypes/_Funkystation/Entities/Structures/Curbs.yml create mode 100644 Resources/Prototypes/_Funkystation/Entities/Structures/Piping/mailpiping.yml create mode 100644 Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/curbs.yml create mode 100644 Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/mailpipes.yml create mode 100644 Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/structures.yml create mode 100644 Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/utilities.yml create mode 100644 Resources/Textures/_Funkystation/Objects/Decoration/WoodenSupportLight.rsi/base.png create mode 100644 Resources/Textures/_Funkystation/Objects/Decoration/WoodenSupportLight.rsi/broken.png create mode 100644 Resources/Textures/_Funkystation/Objects/Decoration/WoodenSupportLight.rsi/burned.png create mode 100644 Resources/Textures/_Funkystation/Objects/Decoration/WoodenSupportLight.rsi/empty.png create mode 100644 Resources/Textures/_Funkystation/Objects/Decoration/WoodenSupportLight.rsi/glow.png create mode 100644 Resources/Textures/_Funkystation/Objects/Decoration/WoodenSupportLight.rsi/meta.json create mode 100644 Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/broken.png create mode 100644 Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/catwalk_0.png create mode 100644 Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/catwalk_1.png create mode 100644 Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/catwalk_2.png create mode 100644 Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/catwalk_3.png create mode 100644 Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/catwalk_4.png create mode 100644 Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/catwalk_5.png create mode 100644 Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/catwalk_6.png create mode 100644 Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/catwalk_7.png create mode 100644 Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/meta.json create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/brass_curb.png create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/brass_curb_corner.png create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/brass_curb_inside_corner.png create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/brass_curb_square.png create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/brass_curb_ubend.png create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/gold_curb.png create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/gold_curb_corner.png create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/gold_curb_inside_corner.png create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/gold_curb_square.png create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/gold_curb_ubend.png create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/hydrogen_curb.png create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/hydrogen_curb_corner.png create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/hydrogen_curb_inside_corner.png create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/hydrogen_curb_square.png create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/hydrogen_curb_ubend.png create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/meta.json create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/steel_curb.png create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/steel_curb_corner.png create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/steel_curb_inside_corner.png create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/steel_curb_square.png create mode 100644 Resources/Textures/_Funkystation/Structures/curbs.rsi/steel_curb_ubend.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-c.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-j1.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-j1s.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-j2.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-j2s.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-s.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-t.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-tagger.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-y.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/meta.json create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-b.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-bf.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-c.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-cf.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-d.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-j1.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-j1f.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-j1s.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-j1sf.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-j2.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-j2f.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-j2s.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-j2sf.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-s.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-sf.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-t.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-tagger-partial.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-tagger.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-tf.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-u.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-y.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-yf.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/signal-router-flipped-free.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/signal-router-flipped.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/signal-router-free.png create mode 100644 Resources/Textures/_Funkystation/Structures/mailpipes.rsi/signal-router.png diff --git a/Resources/Prototypes/_Funkystation/Entities/Objects/Decorations/WoodenSupportWithLight.yml b/Resources/Prototypes/_Funkystation/Entities/Objects/Decorations/WoodenSupportWithLight.yml new file mode 100644 index 00000000000..daa9440bb84 --- /dev/null +++ b/Resources/Prototypes/_Funkystation/Entities/Objects/Decorations/WoodenSupportWithLight.yml @@ -0,0 +1,92 @@ +- type: entity + name: wooden support with light + description: "May you travel safe through the darkness" + id: WoodenSupportLight + parent: AlwaysPoweredWallLight + suffix: Dim Light + placement: + mode: SnapgridCenter + components: + - type: AmbientSound + volume: -15 + range: 2 + sound: + path: /Audio/Ambience/Objects/light_hum.ogg + - type: Sprite + noRot: true + sprite: _Funkystation/Objects/Decoration/WoodenSupportLight.rsi + state: base + - type: PointLight + enabled: false + radius: 5 + energy: 0.5 + softness: 3 + color: "#ba473f" + - type: Physics + bodyType: Static + - type: ContainerContainer + containers: + light_bulb: !type:ContainerSlot + - type: PoweredLight + hasLampOnSpawn: DimLightBulb + - type: ApcPowerReceiver + - type: ExtensionCableReceiver + - type: DeviceNetwork + deviceNetId: Wireless + receiveFrequencyId: SmartLight + - type: WirelessNetworkConnection + range: 200 + - type: Appearance + - type: PoweredLightVisuals + spriteStateMap: + empty: empty + off: base + on: base + broken: broken + burned: burned + - type: DeviceLinkSink + ports: + - On + - Off + - Toggle + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.1,-0.5,0.1,0.5" + mask: + - FullTileMask + layer: + - WallLayer + density: 1000 + - type: Damageable + damageContainer: Inorganic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 100 + behaviors: #excess damage, don't spawn entities. + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:EmptyAllContainersBehaviour + - !type:SpawnEntitiesBehavior + spawn: + SheetSteel1: + min: 1 + max: 1 + Log: + min: 1 + max: 3 + - !type:DoActsBehavior + acts: ["Destruction"] + - type: DamageOnInteract + damage: + types: + Heat: 2 + popupText: powered-light-component-burn-hand diff --git a/Resources/Prototypes/_Funkystation/Entities/Structures/BrokenCatwalk.yml b/Resources/Prototypes/_Funkystation/Entities/Structures/BrokenCatwalk.yml new file mode 100644 index 00000000000..a5211c85f96 --- /dev/null +++ b/Resources/Prototypes/_Funkystation/Entities/Structures/BrokenCatwalk.yml @@ -0,0 +1,58 @@ +# TODO move this to tiles once tile smoothing is supported +- type: entity + id: BrokenCatwalk + name: broken catwalk + description: This catwalk has seen better days. + placement: + mode: SnapgridCenter + components: + - type: Clickable + - type: Sprite + sprite: _Funkystation/Structures/brokencatwalk.rsi + drawdepth: FloorTiles + - type: Icon + sprite: _Funkystation/Structures/brokencatwalk.rsi + state: broken + - type: Transform + anchored: true + - type: IconSmooth + key: catwalk + base: catwalk_ + - type: FootstepModifier + footstepSoundCollection: + collection: FootstepCatwalk + params: + volume: 8 + - type: Tag + tags: + - Catwalk + - type: Construction + graph: Catwalk + node: Catwalk + - type: Damageable + damageContainer: StructuralInorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 500 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 200 + behaviors: + - !type:SpawnEntitiesBehavior + spawn: + PartRodMetal: # takes two to construct, so drop less than that + min: 0 + max: 1 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: TrayScanReveal + - type: RCDDeconstructable + cost: 2 + delay: 2 + fx: EffectRCDDeconstruct2 diff --git a/Resources/Prototypes/_Funkystation/Entities/Structures/Curbs.yml b/Resources/Prototypes/_Funkystation/Entities/Structures/Curbs.yml new file mode 100644 index 00000000000..b5477857ccd --- /dev/null +++ b/Resources/Prototypes/_Funkystation/Entities/Structures/Curbs.yml @@ -0,0 +1,722 @@ +#Steel +- type: entity + parent: BaseStructure + id: BaseCurb + abstract: true + name: Curb + description: A curb to keep your crates off my lawn. + components: + - type: Sprite + drawdepth: FloorTiles + sprite: _Funkystation/Structures/curbs.rsi + - type: Icon + sprite: _Funkystation/Structures/curbs.rsi + - type: Physics + bodyType: Static + - type: Clickable + - type: InteractionOutline + - type: Repairable + - type: Damageable + damageContainer: StructuralInorganic + damageModifierSet: FlimsyMetallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 20 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + - type: Construction + graph: curbs + node: steelCurb + - type: RCDDeconstructable + cost: 2 + delay: 2 + fx: EffectRCDDeconstruct2 + +- type: entity + parent: BaseCurb + id: SteelCurb + name: steel curb + components: + - type: Sprite + state: steel_curb + drawdepth: FloorTiles + - type: Icon + state: steel_curb + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,0.49,-0.25" + density: 1000 + mask: + - CrateMask + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 100 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 20 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + params: + volume: -6 + - !type:SpawnEntitiesBehavior + spawn: + SheetSteel1: + min: 0 + max: 1 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Construction + node: steelCurb + +- type: entity + parent: SteelCurb + id: SteelCurbCorner + name: steel curb corner + components: + - type: Sprite + state: steel_curb_corner + drawdepth: FloorTiles + - type: Icon + state: steel_curb_corner + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,0.49,-0.25" + density: 1000 + mask: + - CrateMask + fix2: + shape: + !type:PhysShapeAabb + bounds: "0.49,0.49,0.25,-0.49" + density: 1000 + mask: + - CrateMask + - type: Construction + node: steelCurbCorner + +- type: entity + parent: SteelCurb + id: SteelCurbCornerInside + name: steel curb inside corner + components: + - type: Sprite + state: steel_curb_inside_corner + drawdepth: FloorTiles + - type: Icon + state: steel_curb_inside_corner + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,0.49,-0.25,0.25" + density: 1000 + mask: + - CrateMask + - type: Construction + node: steelCurbCornerInside + +- type: entity + parent: SteelCurb + id: SteelCurbUbend + name: steel curb u-bend + components: + - type: Sprite + state: steel_curb_ubend + drawdepth: FloorTiles + - type: Icon + state: steel_curb_ubend + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,0.49,-0.25" + density: 1000 + mask: + - CrateMask + fix2: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,-0.25,0.49" + density: 1000 + mask: + - CrateMask + fix3: + shape: + !type:PhysShapeAabb + bounds: "0.25,-0.49,0.49,0.49" + density: 1000 + mask: + - CrateMask + - type: Construction + node: steelCurbUbend + +- type: entity + parent: SteelCurb + id: SteelCurbSquare + name: steel curb square + components: + - type: Sprite + state: steel_curb_square + drawdepth: FloorTiles + - type: Icon + state: steel_curb_square + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,0.49,-0.25" + density: 1000 + mask: + - CrateMask + fix2: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,-0.25,0.49" + density: 1000 + mask: + - CrateMask + fix3: + shape: + !type:PhysShapeAabb + bounds: "0.25,-0.49,0.49,0.49" + density: 1000 + mask: + - CrateMask + - type: Construction + node: steelCurbSquare + +#Brass +- type: entity + parent: BaseCurb + id: BrassCurb + name: brass curb + components: + - type: Sprite + state: brass_curb + drawdepth: FloorTiles + - type: Icon + state: brass_curb + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,0.49,-0.25" + density: 1000 + mask: + - CrateMask + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 100 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 20 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + params: + volume: -6 + - !type:SpawnEntitiesBehavior + spawn: + SheetBrass1: + min: 0 + max: 1 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Construction + node: brassCurb + +- type: entity + parent: BrassCurb + id: BrassCurbCorner + name: brass curb corner + components: + - type: Sprite + state: brass_curb_corner + drawdepth: FloorTiles + - type: Icon + state: brass_curb_corner + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,0.49,-0.25" + density: 1000 + mask: + - CrateMask + fix2: + shape: + !type:PhysShapeAabb + bounds: "0.49,0.49,0.25,-0.49" + density: 1000 + mask: + - CrateMask + - type: Construction + node: brassCurbCorner + +- type: entity + parent: BrassCurb + id: BrassCurbCornerInside + name: brass curb inside corner + components: + - type: Sprite + state: brass_curb_inside_corner + drawdepth: FloorTiles + - type: Icon + state: brass_curb_inside_corner + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,0.49,-0.25,0.25" + density: 1000 + mask: + - CrateMask + - type: Construction + node: brassCurbCornerInside + +- type: entity + parent: BrassCurb + id: BrassCurbUbend + name: brass curb u-bend + components: + - type: Sprite + state: brass_curb_ubend + drawdepth: FloorTiles + - type: Icon + state: brass_curb_ubend + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,0.49,-0.25" + density: 1000 + mask: + - CrateMask + fix2: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,-0.25,0.49" + density: 1000 + mask: + - CrateMask + fix3: + shape: + !type:PhysShapeAabb + bounds: "0.25,-0.49,0.49,0.49" + density: 1000 + mask: + - CrateMask + - type: Construction + node: brassCurbUbend + +- type: entity + parent: BrassCurb + id: BrassCurbSquare + name: brass curb square + components: + - type: Sprite + state: brass_curb_square + drawdepth: FloorTiles + - type: Icon + state: brass_curb_square + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,0.49,-0.25" + density: 1000 + mask: + - CrateMask + fix2: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,-0.25,0.49" + density: 1000 + mask: + - CrateMask + fix3: + shape: + !type:PhysShapeAabb + bounds: "0.25,-0.49,0.49,0.49" + density: 1000 + mask: + - CrateMask + - type: Construction + node: brassCurbSquare + +#Gold +- type: entity + parent: BaseCurb + id: GoldCurb + name: gold curb + components: + - type: Sprite + state: gold_curb + drawdepth: FloorTiles + - type: Icon + state: gold_curb + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,0.49,-0.25" + density: 1000 + mask: + - CrateMask + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 100 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 20 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + params: + volume: -6 + - !type:SpawnEntitiesBehavior + spawn: + IngotGold1: + min: 0 + max: 1 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Construction + node: goldCurb + +- type: entity + parent: GoldCurb + id: GoldCurbCorner + name: gold curb corner + components: + - type: Sprite + state: gold_curb_corner + drawdepth: FloorTiles + - type: Icon + state: gold_curb_corner + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,0.49,-0.25" + density: 1000 + mask: + - CrateMask + fix2: + shape: + !type:PhysShapeAabb + bounds: "0.49,0.49,0.25,-0.49" + density: 1000 + mask: + - CrateMask + - type: Construction + node: goldCurbCorner + +- type: entity + parent: GoldCurb + id: GoldCurbCornerInside + name: gold curb inside corner + components: + - type: Sprite + state: gold_curb_inside_corner + drawdepth: FloorTiles + - type: Icon + state: gold_curb_inside_corner + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,0.49,-0.25,0.25" + density: 1000 + mask: + - CrateMask + - type: Construction + node: goldCurbCornerInside + +- type: entity + parent: GoldCurb + id: GoldCurbUbend + name: gold curb u-bend + components: + - type: Sprite + state: gold_curb_ubend + drawdepth: FloorTiles + - type: Icon + state: gold_curb_ubend + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,0.49,-0.25" + density: 1000 + mask: + - CrateMask + fix2: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,-0.25,0.49" + density: 1000 + mask: + - CrateMask + fix3: + shape: + !type:PhysShapeAabb + bounds: "0.25,-0.49,0.49,0.49" + density: 1000 + mask: + - CrateMask + - type: Construction + node: goldCurbUbend + +- type: entity + parent: GoldCurb + id: GoldCurbSquare + name: gold curb square + components: + - type: Sprite + state: gold_curb_square + drawdepth: FloorTiles + - type: Icon + state: gold_curb_square + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,0.49,-0.25" + density: 1000 + mask: + - CrateMask + fix2: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,-0.25,0.49" + density: 1000 + mask: + - CrateMask + fix3: + shape: + !type:PhysShapeAabb + bounds: "0.25,-0.49,0.49,0.49" + density: 1000 + mask: + - CrateMask + - type: Construction + node: goldCurbSquare + +#Hydrogen +- type: entity + parent: BaseCurb + id: HydrogenCurb + name: hydrogen curb + components: + - type: Sprite + state: hydrogen_curb + drawdepth: FloorTiles + - type: Icon + state: hydrogen_curb + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,0.49,-0.25" + density: 1000 + mask: + - CrateMask + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 100 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 20 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + params: + volume: -6 + - !type:SpawnEntitiesBehavior + spawn: + MetalHydrogen1: + min: 0 + max: 1 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Construction + node: hydrogenCurb + +- type: entity + parent: HydrogenCurb + id: HydrogenCurbCorner + name: hydrogen curb corner + components: + - type: Sprite + state: hydrogen_curb_corner + drawdepth: FloorTiles + - type: Icon + state: hydrogen_curb_corner + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,0.49,-0.25" + density: 1000 + mask: + - CrateMask + fix2: + shape: + !type:PhysShapeAabb + bounds: "0.49,0.49,0.25,-0.49" + density: 1000 + mask: + - CrateMask + - type: Construction + node: hydrogenCurbCorner + +- type: entity + parent: HydrogenCurb + id: HydrogenCurbCornerInside + name: hydrogen curb inside corner + components: + - type: Sprite + state: hydrogen_curb_inside_corner + drawdepth: FloorTiles + - type: Icon + state: hydrogen_curb_inside_corner + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,0.49,-0.25,0.25" + density: 1000 + mask: + - CrateMask + - type: Construction + node: hydrogenCurbCornerInside + +- type: entity + parent: HydrogenCurb + id: HydrogenCurbUbend + name: hydrogen curb u-bend + components: + - type: Sprite + state: hydrogen_curb_ubend + drawdepth: FloorTiles + - type: Icon + state: hydrogen_curb_ubend + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,0.49,-0.25" + density: 1000 + mask: + - CrateMask + fix2: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,-0.25,0.49" + density: 1000 + mask: + - CrateMask + fix3: + shape: + !type:PhysShapeAabb + bounds: "0.25,-0.49,0.49,0.49" + density: 1000 + mask: + - CrateMask + - type: Construction + node: hydrogenCurbUbend + +- type: entity + parent: HydrogenCurb + id: HydrogenCurbSquare + name: hydrogen curb square + components: + - type: Sprite + state: hydrogen_curb_square + drawdepth: FloorTiles + - type: Icon + state: hydrogen_curb_square + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,0.49,-0.25" + density: 1000 + mask: + - CrateMask + fix2: + shape: + !type:PhysShapeAabb + bounds: "-0.49,-0.49,-0.25,0.49" + density: 1000 + mask: + - CrateMask + fix3: + shape: + !type:PhysShapeAabb + bounds: "0.25,-0.49,0.49,0.49" + density: 1000 + mask: + - CrateMask + - type: Construction + node: hydrogenCurbSquare diff --git a/Resources/Prototypes/_Funkystation/Entities/Structures/Piping/mailpiping.yml b/Resources/Prototypes/_Funkystation/Entities/Structures/Piping/mailpiping.yml new file mode 100644 index 00000000000..e20338f75e3 --- /dev/null +++ b/Resources/Prototypes/_Funkystation/Entities/Structures/Piping/mailpiping.yml @@ -0,0 +1,165 @@ +#mail pipes +- type: entity + id: MailPipeBroken + parent: DisposalPipeBroken + name: broken mail pipe + description: A BBP (big broken pipe). + components: + - type: Sprite + drawdepth: ThickPipe + sprite: _Funkystation/Structures/mailpipes.rsi + layers: + - map: [ "pipe" ] + state: pipe-b + +- type: entity + id: MailPipe + parent: DisposalPipe + name: mail pipe segment + description: A huge pipe segment used for sending mail. + components: + - type: Sprite + drawdepth: ThickPipe + sprite: _Funkystation/Structures/mailpipes.rsi + layers: + - map: [ "pipe" ] + state: conpipe-s + - type: Construction + graph: mailpipes + node: pipe + containers: + - DisposalTransit + +- type: entity + id: MailTagger + parent: DisposalTagger + name: mail pipe tagger + description: A pipe that tags entities for routing. + components: + - type: Sprite + drawdepth: ThickPipe + sprite: _Funkystation/Structures/mailpipes.rsi + layers: + - map: [ "pipe" ] + state: conpipe-tagger + - type: Construction + graph: mailpipes + node: tagger + +- type: entity + id: MailTrunk + parent: DisposalTrunk + name: mail trunk + description: A pipe trunk used as an entry point for mail systems. + components: + - type: Sprite + drawdepth: ThickPipe + sprite: _Funkystation/Structures/mailpipes.rsi + layers: + - map: [ "pipe" ] + state: conpipe-t + +- type: entity + id: MailRouter + parent: DisposalRouter + name: mail router + description: A three-way router. Entities with matching tags get routed to the side via configurable filters. + components: + - type: Sprite + drawdepth: ThickPipe + sprite: _Funkystation/Structures/mailpipes.rsi + layers: + - map: [ "pipe" ] + state: conpipe-j1s + +- type: entity + id: MailRouterFlipped + description: A three-way router. Entities with matching tags get routed to the side. + parent: DisposalRouterFlipped + name: mail router + suffix: flipped + components: + - type: Sprite + drawdepth: ThickPipe + sprite: _Funkystation/Structures/mailpipes.rsi + layers: + - map: [ "pipe" ] + state: conpipe-j2s + +- type: entity + id: MailJunction + parent: DisposalJunction + name: mail junction + description: A three-way junction. The arrow indicates where items exit. + components: + - type: Sprite + drawdepth: ThickPipe + sprite: _Funkystation/Structures/mailpipes.rsi + layers: + - map: [ "pipe" ] + state: conpipe-j1 + +- type: entity + id: MailJunctionFlipped + description: A three-way junction. The arrow indicates where items exit. + parent: DisposalJunctionFlipped + suffix: flipped + components: + - type: Sprite + drawdepth: ThickPipe + sprite: _Funkystation/Structures/mailpipes.rsi + layers: + - map: [ "pipe" ] + state: conpipe-j2 + +- type: entity + id: MailYJunction + parent: DisposalYJunction + name: mail y-junction + description: A three-way junction with another exit point. + components: + - type: Sprite + drawdepth: ThickPipe + sprite: _Funkystation/Structures/mailpipes.rsi + layers: + - map: [ "pipe" ] + state: conpipe-y + +- type: entity + id: MailBend + parent: DisposalBend + name: mail bend + description: A tube bent at a 90 degree angle. + components: + - type: Sprite + drawdepth: ThickPipe + sprite: _Funkystation/Structures/mailpipes.rsi + layers: + - map: [ "pipe" ] + state: conpipe-c + +- type: entity + parent: DisposalSignalRouter + id: MailSignalRouter + name: mail signal router + description: A signal-controlled three-way router. + components: + - type: Sprite + drawdepth: ThickPipe + sprite: _Funkystation/Structures/mailpipes.rsi + layers: + - map: [ "pipe" ] + state: signal-router-free + +- type: entity + parent: DisposalSignalRouterFlipped + id: MailSignalRouterFlipped + name: mail signal router + suffix: flipped + components: + - type: Sprite + drawdepth: ThickPipe + sprite: _Funkystation/Structures/mailpipes.rsi + layers: + - map: [ "pipe" ] + state: signal-router-flipped-free diff --git a/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/curbs.yml b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/curbs.yml new file mode 100644 index 00000000000..e53cf750d4f --- /dev/null +++ b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/curbs.yml @@ -0,0 +1,371 @@ +#Steel +- type: constructionGraph + id: curbs + start: start + graph: + - node: start + edges: + - to: steelCurb + steps: + - material: Steel + amount: 1 + doAfter: 1 + - to: steelCurbCorner + steps: + - material: Steel + amount: 1 + doAfter: 1 + - to: steelCurbCornerInside + steps: + - material: Steel + amount: 1 + doAfter: 1 + - to: steelCurbUbend + steps: + - material: Steel + amount: 1 + doAfter: 1 + - to: steelCurbSquare + steps: + - material: Steel + amount: 1 + doAfter: 1 +#Brass + - to: brassCurb + steps: + - material: Brass + amount: 1 + doAfter: 1 + - to: brassCurbCorner + steps: + - material: Brass + amount: 1 + doAfter: 1 + - to: brassCurbCornerInside + steps: + - material: Brass + amount: 1 + doAfter: 1 + - to: brassCurbUbend + steps: + - material: Brass + amount: 1 + doAfter: 1 + - to: brassCurbSquare + steps: + - material: Brass + amount: 1 + doAfter: 1 +#Gold + - to: goldCurb + steps: + - material: Gold + amount: 1 + doAfter: 1 + - to: goldCurbCorner + steps: + - material: Gold + amount: 1 + doAfter: 1 + - to: goldCurbCornerInside + steps: + - material: Gold + amount: 1 + doAfter: 1 + - to: goldCurbUbend + steps: + - material: Gold + amount: 1 + doAfter: 1 + - to: goldCurbSquare + steps: + - material: Gold + amount: 1 + doAfter: 1 +#Hydrogen + - to: hydrogenCurb + steps: + - material: MetalHydrogen + amount: 1 + doAfter: 1 + - to: hydrogenCurbCorner + steps: + - material: MetalHydrogen + amount: 1 + doAfter: 1 + - to: hydrogenCurbCornerInside + steps: + - material: MetalHydrogen + amount: 1 + doAfter: 1 + - to: hydrogenCurbUbend + steps: + - material: MetalHydrogen + amount: 1 + doAfter: 1 + - to: hydrogenCurbSquare + steps: + - material: MetalHydrogen + amount: 1 + doAfter: 1 + +#Steel + - node: steelCurb + entity: SteelCurb + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + + - node: steelCurbCorner + entity: SteelCurbCorner + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + + - node: steelCurbCornerInside + entity: SteelCurbCornerInside + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + + - node: steelCurbUbend + entity: SteelCurbUbend + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + + - node: steelCurbSquare + entity: SteelCurbSquare + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 +#Brass + - node: brassCurb + entity: BrassCurb + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetBrass1 + amount: 1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + + - node: brassCurbCorner + entity: BrassCurbCorner + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetBrass1 + amount: 1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + + - node: brassCurbCornerInside + entity: BrassCurbCornerInside + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetBrass1 + amount: 1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + + - node: brassCurbUbend + entity: BrassCurbUbend + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetBrass1 + amount: 1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + + - node: brassCurbSquare + entity: BrassCurbSquare + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetBrass1 + amount: 1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 +#Gold + - node: goldCurb + entity: GoldCurb + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: IngotGold1 + amount: 1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + + - node: goldCurbCorner + entity: GoldCurbCorner + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: IngotGold1 + amount: 1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + + - node: goldCurbCornerInside + entity: GoldCurbCornerInside + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: IngotGold1 + amount: 1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + + - node: goldCurbUbend + entity: GoldCurbUbend + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: IngotGold1 + amount: 1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + + - node: goldCurbSquare + entity: GoldCurbSquare + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: IngotGold1 + amount: 1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 +#Hydrogen + - node: hydrogenCurb + entity: HydrogenCurb + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: MetalHydrogen1 + amount: 1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + + - node: hydrogenCurbCorner + entity: HydrogenCurbCorner + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: MetalHydrogen1 + amount: 1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + + - node: hydrogenCurbCornerInside + entity: HydrogenCurbCornerInside + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: MetalHydrogen1 + amount: 1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + + - node: hydrogenCurbUbend + entity: HydrogenCurbUbend + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: MetalHydrogen1 + amount: 1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + + - node: hydrogenCurbSquare + entity: HydrogenCurbSquare + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: MetalHydrogen1 + amount: 1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 diff --git a/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/mailpipes.yml b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/mailpipes.yml new file mode 100644 index 00000000000..a974806a6b2 --- /dev/null +++ b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/mailpipes.yml @@ -0,0 +1,236 @@ +- type: constructionGraph + id: mailpipes + start: start + graph: + - node: start + edges: + - to: pipe + steps: + - material: Steel + amount: 2 + doAfter: 1 + - to: tagger + steps: + - material: Steel + amount: 2 + doAfter: 1 + - to: trunk + steps: + - material: Steel + amount: 2 + doAfter: 1 + # DisposalRouter + - to: router + steps: + - material: Steel + amount: 2 + doAfter: 1 + - to: routerflipped + steps: + - material: Steel + amount: 2 + doAfter: 1 + # DisposalJunction + - to: junction + steps: + - material: Steel + amount: 2 + doAfter: 1 + - to: junctionflipped + steps: + - material: Steel + amount: 2 + doAfter: 1 + - to: yJunction + steps: + - material: Steel + amount: 2 + doAfter: 1 + - to: bend + steps: + - material: Steel + amount: 2 + doAfter: 1 + # DisposalSignalRouter + - to: signal_router + steps: + - material: Steel + amount: 2 + doAfter: 1 + - material: Cable + amount: 1 + doAfter: 1 + - to: signal_router_flipped + steps: + - material: Steel + amount: 2 + doAfter: 1 + - material: Cable + amount: 1 + doAfter: 1 + - node: broken + entity: DisposalPipeBroken + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + - node: pipe + entity: MailPipe + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 2 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + - node: tagger + entity: MailTagger + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 2 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + - node: trunk + entity: MailTrunk + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 2 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + # DisposalRouter + - node: router + entity: MailRouter + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 2 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + - node: routerflipped + entity: MailRouterFlipped + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 2 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + # DisposalJunction + - node: junction + entity: MailJunction + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 2 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + - to: yJunction + steps: + - tool: Screwing + doAfter: 1 + - node: junctionflipped + entity: MailJunctionFlipped + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 2 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + - to: yJunction + steps: + - tool: Screwing + doAfter: 1 + - node: yJunction + entity: MailYJunction + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 2 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + - to: junction + steps: + - tool: Screwing + doAfter: 1 + - to: junctionflipped + steps: + - tool: Screwing + doAfter: 1 + - node: bend + entity: MailBend + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 2 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + # DisposalRouter + - node: signal_router + entity: MailSignalRouter + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 2 + - !type:SpawnPrototype + prototype: CableApcStack1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 + - node: signal_router_flipped + entity: MailSignalRouterFlipped + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 2 + - !type:SpawnPrototype + prototype: CableApcStack1 + - !type:DeleteEntity + steps: + - tool: Welding + doAfter: 1 diff --git a/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/structures.yml b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/structures.yml new file mode 100644 index 00000000000..837b0ed27e0 --- /dev/null +++ b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/structures.yml @@ -0,0 +1,283 @@ +#Steel +- type: construction + name: steel curb + description: A simple curb. + id: SteelCurb + graph: curbs + startNode: start + targetNode: steelCurb + category: construction-category-structures + placementMode: SnapgridCenter + objectType: Structure + icon: + sprite: _Funkystation/Structures/curbs.rsi + state: steel_curb + +- type: construction + name: steel curb corner + description: A simple curb corner. + id: SteelCurbCorner + graph: curbs + startNode: start + targetNode: steelCurbCorner + category: construction-category-structures + placementMode: SnapgridCenter + objectType: Structure + icon: + sprite: _Funkystation/Structures/curbs.rsi + state: steel_curb_corner + +- type: construction + name: steel curb inside corner + description: A simple curb inside corner. + id: SteelCurbCornerInside + graph: curbs + startNode: start + targetNode: steelCurbCornerInside + category: construction-category-structures + placementMode: SnapgridCenter + objectType: Structure + icon: + sprite: _Funkystation/Structures/curbs.rsi + state: steel_curb_inside_corner + +- type: construction + name: steel curb Ubend + description: A simple curb Ubend. + id: SteelCurbUbend + graph: curbs + startNode: start + targetNode: steelCurbUbend + category: construction-category-structures + placementMode: SnapgridCenter + objectType: Structure + icon: + sprite: _Funkystation/Structures/curbs.rsi + state: steel_curb_ubend + +- type: construction + name: steel curb square + description: A simple curb square. + id: SteelCurbSquare + graph: curbs + startNode: start + targetNode: steelCurbSquare + category: construction-category-structures + placementMode: SnapgridCenter + objectType: Structure + icon: + sprite: _Funkystation/Structures/curbs.rsi + state: steel_curb_square + +#Brass +- type: construction + name: brass curb + description: A rustic brass curb. + id: BrassCurb + graph: curbs + startNode: start + targetNode: brassCurb + category: construction-category-structures + placementMode: SnapgridCenter + objectType: Structure + icon: + sprite: _Funkystation/Structures/curbs.rsi + state: brass_curb + +- type: construction + name: brass curb corner + description: A rustic brass curb corner. + id: BrassCurbCorner + graph: curbs + startNode: start + targetNode: brassCurbCorner + category: construction-category-structures + placementMode: SnapgridCenter + objectType: Structure + icon: + sprite: _Funkystation/Structures/curbs.rsi + state: brass_curb_corner + +- type: construction + name: brass curb inside corner + description: A rustic brass inside corner. + id: BrassCurbCornerInside + graph: curbs + startNode: start + targetNode: brassCurbCornerInside + category: construction-category-structures + placementMode: SnapgridCenter + objectType: Structure + icon: + sprite: _Funkystation/Structures/curbs.rsi + state: brass_curb_inside_corner + +- type: construction + name: brass curb Ubend + description: A rustic brass Ubend. + id: BrassCurbUbend + graph: curbs + startNode: start + targetNode: brassCurbUbend + category: construction-category-structures + placementMode: SnapgridCenter + objectType: Structure + icon: + sprite: _Funkystation/Structures/curbs.rsi + state: brass_curb_ubend + +- type: construction + name: brass curb square + description: A rustic brass square curb. + id: BrassCurbSquare + graph: curbs + startNode: start + targetNode: brassCurbSquare + category: construction-category-structures + placementMode: SnapgridCenter + objectType: Structure + icon: + sprite: _Funkystation/Structures/curbs.rsi + state: brass_curb_square + +#Gold +- type: construction + name: gold curb + description: A lavish golden curb. + id: GoldCurb + graph: curbs + startNode: start + targetNode: goldCurb + category: construction-category-structures + placementMode: SnapgridCenter + objectType: Structure + icon: + sprite: _Funkystation/Structures/curbs.rsi + state: gold_curb + +- type: construction + name: gold curb corner + description: A lavish golden curb corner. + id: GoldCurbCorner + graph: curbs + startNode: start + targetNode: goldCurbCorner + category: construction-category-structures + placementMode: SnapgridCenter + objectType: Structure + icon: + sprite: _Funkystation/Structures/curbs.rsi + state: gold_curb_corner + +- type: construction + name: gold curb inside corner + description: A lavish golden inside corner. + id: GoldCurbCornerInside + graph: curbs + startNode: start + targetNode: goldCurbCornerInside + category: construction-category-structures + placementMode: SnapgridCenter + objectType: Structure + icon: + sprite: _Funkystation/Structures/curbs.rsi + state: gold_curb_inside_corner + +- type: construction + name: gold curb Ubend + description: A lavish golden Ubend. + id: GoldCurbUbend + graph: curbs + startNode: start + targetNode: goldCurbUbend + category: construction-category-structures + placementMode: SnapgridCenter + objectType: Structure + icon: + sprite: _Funkystation/Structures/curbs.rsi + state: gold_curb_ubend + +- type: construction + name: gold curb square + description: A lavish golden square curb. + id: GoldCurbSquare + graph: curbs + startNode: start + targetNode: goldCurbSquare + category: construction-category-structures + placementMode: SnapgridCenter + objectType: Structure + icon: + sprite: _Funkystation/Structures/curbs.rsi + state: gold_curb_square + +#Hydrogen +- type: construction + name: hydrogen metal curb + description: A exotic hydrogen metal curb. + id: HydrogenCurb + graph: curbs + startNode: start + targetNode: hydrogenCurb + category: construction-category-structures + placementMode: SnapgridCenter + objectType: Structure + icon: + sprite: _Funkystation/Structures/curbs.rsi + state: hydrogen_curb + +- type: construction + name: hydrogen metal curb corner + description: A exotic hydrogen metal curb corner. + id: HydrogenCurbCorner + graph: curbs + startNode: start + targetNode: hydrogenCurbCorner + category: construction-category-structures + placementMode: SnapgridCenter + objectType: Structure + icon: + sprite: _Funkystation/Structures/curbs.rsi + state: hydrogen_curb_corner + +- type: construction + name: hydrogen metal curb inside corner + description: A exotic hydrogen metal inside corner. + id: HydrogenCurbCornerInside + graph: curbs + startNode: start + targetNode: hydrogenCurbCornerInside + category: construction-category-structures + placementMode: SnapgridCenter + objectType: Structure + icon: + sprite: _Funkystation/Structures/curbs.rsi + state: hydrogen_curb_inside_corner + +- type: construction + name: hydrogen metal curb Ubend + description: A exotic hydrogen metal Ubend. + id: HydrogenCurbUbend + graph: curbs + startNode: start + targetNode: hydrogenCurbUbend + category: construction-category-structures + placementMode: SnapgridCenter + objectType: Structure + icon: + sprite: _Funkystation/Structures/curbs.rsi + state: hydrogen_curb_ubend + +- type: construction + name: hydrogen metal curb square + description: A exotic hydrogen metal square curb. + id: HydrogenCurbSquare + graph: curbs + startNode: start + targetNode: hydrogenCurbSquare + category: construction-category-structures + placementMode: SnapgridCenter + objectType: Structure + icon: + sprite: _Funkystation/Structures/curbs.rsi + state: hydrogen_curb_square diff --git a/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/utilities.yml b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/utilities.yml new file mode 100644 index 00000000000..dc292c5cca4 --- /dev/null +++ b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/utilities.yml @@ -0,0 +1,153 @@ +- type: construction + name: mail pipe + id: MailPipe + description: A huge pipe segment used for constructing mail systems. + graph: mailpipes + startNode: start + targetNode: pipe + category: construction-category-utilities + placementMode: SnapgridCenter + canBuildInImpassable: false + icon: + sprite: _Funkystation/Structures/mailpipes.rsi + state: conpipe-s + +- type: construction + name: mail tagger + id: MailTagger + description: A pipe that tags entities for routing. + graph: mailpipes + startNode: start + targetNode: tagger + category: construction-category-utilities + placementMode: SnapgridCenter + canBuildInImpassable: false + icon: + sprite: _Funkystation/Structures/mailpipes.rsi + state: conpipe-tagger + +- type: construction + name: mail trunk + id: MailTrunk + description: A pipe trunk used as an entry point for mail systems. + graph: mailpipes + startNode: start + targetNode: trunk + category: construction-category-utilities + placementMode: SnapgridCenter + canBuildInImpassable: false + icon: + sprite: _Funkystation/Structures/mailpipes.rsi + state: conpipe-t + +- type: construction + name: mail router + id: MailRouter + description: A three-way router. Entities with matching tags get routed to the side via configurable filters. + graph: mailpipes + startNode: start + targetNode: router + category: construction-category-utilities + placementMode: SnapgridCenter + canBuildInImpassable: false + icon: + sprite: _Funkystation/Structures/mailpipes.rsi + state: conpipe-j1s + +- type: construction + name: mail router flipped + id: MailRouterFlipped + description: A three-way router. Entities with matching tags get routed to the side via configurable filters. + graph: mailpipes + startNode: start + targetNode: routerflipped + category: construction-category-utilities + placementMode: SnapgridCenter + canBuildInImpassable: false + icon: + sprite: _Funkystation/Structures/mailpipes.rsi + state: conpipe-j2s + +- type: construction + name: mail junction + id: MailJunction + description: A three-way junction. The arrow indicates where items exit. + graph: mailpipes + startNode: start + targetNode: junction + category: construction-category-utilities + placementMode: SnapgridCenter + canBuildInImpassable: false + icon: + sprite: _Funkystation/Structures/mailpipes.rsi + state: conpipe-j1 + +- type: construction + name: mail junction flipped + id: MailJunctionFlipped + description: A three-way junction. The arrow indicates where items exit. + graph: mailpipes + startNode: start + targetNode: junctionflipped + category: construction-category-utilities + placementMode: SnapgridCenter + canBuildInImpassable: false + icon: + sprite: _Funkystation/Structures/mailpipes.rsi + state: conpipe-j2 + +- type: construction + name: mail y-junction + id: MailYJunction + description: A three-way junction with another exit point. + graph: mailpipes + startNode: start + targetNode: yJunction + category: construction-category-utilities + placementMode: SnapgridCenter + canBuildInImpassable: false + icon: + sprite: _Funkystation/Structures/mailpipes.rsi + state: conpipe-y + +- type: construction + name: mail bend + id: MailBend + description: A tube bent at a 90 degree angle. + graph: mailpipes + startNode: start + targetNode: bend + category: construction-category-utilities + placementMode: SnapgridCenter + canBuildInImpassable: false + icon: + sprite: _Funkystation/Structures/mailpipes.rsi + state: conpipe-c + +- type: construction + name: mail signal router + id: MailSignalRouter + description: A signal-controlled three-way router. + graph: mailpipes + startNode: start + targetNode: signal_router + category: construction-category-utilities + placementMode: SnapgridCenter + canBuildInImpassable: false + icon: + sprite: _Funkystation/Structures/mailpipes.rsi + state: signal-router-free + +- type: construction + name: mail signal router flipped + id: MailSignalRouterFlipped + description: A signal-controlled three-way router. + graph: mailpipes + startNode: start + targetNode: signal_router_flipped + category: construction-category-utilities + placementMode: SnapgridCenter + canBuildInImpassable: false + icon: + sprite: _Funkystation/Structures/mailpipes.rsi + state: signal-router-flipped-free diff --git a/Resources/Textures/_Funkystation/Objects/Decoration/WoodenSupportLight.rsi/base.png b/Resources/Textures/_Funkystation/Objects/Decoration/WoodenSupportLight.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..0b2a11985b2f800a562b992bfbaf1535a5bdbab0 GIT binary patch literal 503 zcmVPx$u}MThR9J=WmOD$sP#nciM5Qgp3LWAQs1V}d=tt<-xlmk1TmvqplQ?NmgiM0E zIY_0WbZ{vB1bzTZpoI)}5R8=&%uolp@#ayRR~svyDY?1)&+p!IA7MJ34rtZ(cSe|^ z-k zGmw-ysr6I6nME)T!V`h24Sb(z9m)zCjRsUz1po+wfNHghqnhN~U*Ng1U><;GtL@mQ zm2zn$@Er2F41lj3i7u`R0D!ZT@BZ7HMF4{UexCWZ7HbalxFB-ZnsCi%j8bUWrT;FZkqXz(9lyLvRLpRJ& z=Ai%x1U*u%t2n*~$vhSSfjB;R!Sm~?4MEmGSo25#L^rZ!L!8#LW4G)idA4C#2q5b? zZo?|_4A7==j_&!sj>#;f5&@9RtvSCD(4+rfgsA}}p}zr;+EJ_Px$u}MThR9J=WmOV?uP#A?z#7bMN6&&Ias1WMl=uha_IS^b$TmxN7CvmE!E}4WX zu2ShJ9UMx3fj__!u#mwF1!E-y9qLeSy!oi6`KlGql-yk2^W2==_lD{B`=C`lKA0dz zHCi_eeZT6QP~0gXx1NfV!KRhOoPGnq`0c|r=89nOG(Z;>hvb z^9@90PHKHuFR=(_LAWANRL%36)=5J~yWNJOC;$MS=OKzBPOFmVe4b-xg1G=X-JWfq z3gyy-=UC*kX#mq4i7qa;008G_U-S2O3jhG!FrlcLtDaMgvk`eoD3>OrFexryr@$2@ zr~?_#FB_;=MiwLi{mC5g`3-csJ%(PnS2XmPUvu98G=y%LxVz`9)pJD&+ncYry4{0r zm~)xW1wbGaRfBXmZ79uJ2I@ct0MsiZUzvvjAP@i`2`y`^Si<8&g#kpNzX7nYR;(LlVB^pLQ7JS)*qsmv tfIj$lvGc#gIGo|Ca4`UF8{t^HZngEs&G002ovPDHLkV1kuB-2?yt literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Objects/Decoration/WoodenSupportLight.rsi/burned.png b/Resources/Textures/_Funkystation/Objects/Decoration/WoodenSupportLight.rsi/burned.png new file mode 100644 index 0000000000000000000000000000000000000000..0e56feb86886b57d3ad08f847d3ca0e28a2598aa GIT binary patch literal 554 zcmV+_0@eMAP)Px$~DshR8oD3eEf$?m6$C zckg?WrfJww+T9*8MU+3*B>VT=_<|>oS4hi=X=-rb!L>2n1OXR)(>3R^;OFTXi>Z0i z>4))veQp2S8O-ip3&t zOD{avt4emFFqeQvv*oDM!sf2v zyb*b!u(>f3fkp6xlLVE$47t3?vI6g3b}f-Y=vCz4^9(eaEy=!f-RMx+%docIqu(D; zJx)06@=FdrGaw-B*xF4Z%PF+43C`QU*nXb0vfwA}b_A+|Mzba9Mh96=0g%g^JX%_y z_UX5kg&^dC1qczJ_qzaA241~RVtj80CI^oy@C)sWN$wdeD@m$lb7IL(O@I&q&UPCV zp*x|SG)n8f-Pf_m!b~iHcy7(xYk__D_lIz10^-2k5HPb=+#3u-6Gs*h7a|LYS_z>9 s*zf+{U>M1YQ11a%$vU3rVlE8+0=s0nwmAj3w*UYD07*qoM6N<$f`+U6m;e9( literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Objects/Decoration/WoodenSupportLight.rsi/empty.png b/Resources/Textures/_Funkystation/Objects/Decoration/WoodenSupportLight.rsi/empty.png new file mode 100644 index 0000000000000000000000000000000000000000..0680d831e10ed82a16911725b91498f72f46d6b7 GIT binary patch literal 476 zcmV<20VDp2P)Px$mPtfGR9J=WmOo3wKp4iKh)OAjE`=EPH&#Id8RA3zE1 zT%2mwLeZ^*a$q4#=oBg;s8EM;^^!|8P144Q&y?I9@B6!Z-uojNh5=s9)8i?YsMhtZ z#Q(4R2kdNDAa89flfk34m1X)30F&2up-r&h`DKJsu>e`#Oeg8&ZT|i6G{T9mKX3)o zO3q?^7jI=2gh2=vP}2(h=5^7!g0AbJlmY+^hrklnG0O0)YYyAFh1pr_>E~se<@%)nf2T_pfwd#}wX2JIkt2mHnnT^R2 z9`Ac|NCx^-av)+2bhpE)%xjE4iX`(?EIWsHXdk6lrdM+V>_Y{v!Q-Cj(#<1UnZ zApizJO$$U-gsLX063O#K01P5dUupnh3frPx#(n&-?R9J=W(=iT$KoEuDf5{fak_Kb6^bquR9>mfk81CUkOl+*U0T;j+Z72;1 zgtb^fOe`FuiN$=?hMmBh-2s$RO31nWs9)EI+|`Ht)!w_TJVF~ew_9G0#ROXca4xp% zcse^ln*mqJ+X6}Pu)}yfU%gsOPeBv_+6Y`i6Q*7F0N4teFa?+Rnx6&uK4E~M1e0N_ z4NdrX+=O7O4VcW={3w7ii~E2LLOgwZSo59_{(_+N_k0i01?u-?j68tnr@b4vppPx$m`OxIR9J=WR=aM(KoFcWlt|E1I1)&=-@y;uKTuGnNQ%@Hv?)?j@Hu>gSI|63)`tyP7^FxZ$+Gvx_wdf#p4DVBvF{(>czeyj%nAUEF*Zq(n_{iCBBDG= z5&(z*;93kIPtz2m(Fk1#7-Ot|CL$1#t-}*hE_ncX8SfT@EX#@u@I(kVSfl)MHNax- zQZk$FeR~H$$9DkG*=#m1K450W%u4dx?Y1Z8I_vMQs`#YI&CpsG`i#fppSoj66eJ*` zLm2z7snGl&o&n&je;F^ODD}W2G!HSG?h(iRqXf&%gNm|3@B>2an@`hCCsqPyjF-4sEaZS5f`s9$M?L0A1YU*LVO((-d(W zA2YDq?Nr%IT5A;ycsfqqz4Exdk-zK#X1163CeXe10yA529yDGDN>g8j&S8hP*V~3A{{wf`f%ST=YGpveWg~J6v#w3~Sn{C>pW&?nj4@XJPqt{$qD2ddU$lAw UueElQ?f?J)07*qoM6N<$f_Z@1p8x;= literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/catwalk_0.png b/Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/catwalk_0.png new file mode 100644 index 0000000000000000000000000000000000000000..cc49bd639118e2975649446ad42c95612f2e9830 GIT binary patch literal 500 zcmVPx$u1Q2eRCt{2noV-UAPj{?rmI{8-Nx597wOV;(U4(04hfdvskOeDESxx4$kO9S z5IK(HIF56cob#!V1~JAUZA09^na+eDeykcdv;k-!4$w*g4ImEaNdb*KZvoMO=fe$X z0Zaodbe_mXkiJGW973R+^YcxYR4Lz|q38iKZ|k}e5#3TsSVfI7hGkjQjMz_es_0F7A(%u;x`2-YB$)}|cLqBUAbFq;B3Bhz8n zRJa$^tj=5t^g7}aDKHXu0NMaFmv;bs6hN=(&5Z&zGnT{f2q>T;K|=%X3T;pb0kTu9 z;ehW~KO7Y`Mi)AIF=Y&q&jhEZf!G0cNPiOEt$WODb@!l|(};r>rZnKFlJt&$rvZgo zTA-={N7vR-j{r%r^60IPjs&p-n0eDKjuxz(A!rg~96oNDt`5&;Upbbdx*DtxL6qzL zL5cd_Ga+97!_1j}Q&{8$u?8H4g literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/catwalk_1.png b/Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/catwalk_1.png new file mode 100644 index 0000000000000000000000000000000000000000..680b2a96aba1b7b5f8170b1b764bc162a10eec71 GIT binary patch literal 678 zcmV;X0$KfuP)J2*d5*>O6E|7CzsSDkaIPJ%m?f_kGr;W|a`=wsRv#?~0LwUx&KYHI0_`d6zJ^l+F1cDr42t+J6>9ae1@ZG}0hbIMD&= zw;4r|*zfm()X9{K{JqryF(=TpxEUQl15iR_9nd12tOt}0b)7w^^#E}m_H?Rrp#xm6 z2PB{(iGtSy8iZ3Fpoyg|7x`HSfM6Y9EmBXxIsmH8I^aJ>pLKwZ^8x7ozPhAV_k2NZ zI5{U+Ftl&yoZygjKnA8ctLT6XXGkdn30C2N)F$zVaZXSSOb5W)UC{yj ze}T5aIsmCGSO@4~QwQ+>1sX=@bpWZ)I-qL&s&K9YMx&8C9Uz4G18<2iq-|+XmH+?% M07*qoM6N<$g80KVQ~&?~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/catwalk_2.png b/Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/catwalk_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a2295320bb34e7c0f8a06e1a6eb05dc1d16b8559 GIT binary patch literal 623 zcmV-#0+9WQP)6viC{5>k=q4KgNYU}ZrZqeI6I?a-NlwL`}aJxVrm27H8Wl@h5!sz_x-kTI!n z{F&H}-fuI;&a>n9{P|BJ22xcORKaq&taiJdarrFEpf(JV!Zr|%e|h~n)b#l9eOBYg z=lxl_DL>0FBb;|Y&GXYQn@lDbzsX$7H(_w=hUp-^Sz*s0P182%@H@aI-nf7uP1F5< z>Em0!$mg7g9Ry{z+wCD$5Aiy!axK3NUbui1?FWiYjWI#VhoBhXfej~gd|u7(WeiZU z>GLW<=m6=jP5BTM13a+d1nB_M0p05Wct0RXl1L22z)xXsO*P2KWT&0JH+q0i*-M#>R4ZFAZ(g#~af=0e65{)iKS3Of}yJ z9RM$fXR{e}J|6sXcsw2(mmQ5p=;LAF4ye!enZfzK*bs4zjU6E)7kGOgvh`}}+y&ri zkaK?5@;tv^Iv`1sA3LVFf%XH?3TQuo_5;F(_5;ugXg`4V1Hy)M09pa*fWUQt^X~=b z^LZtf)W@6OTK5a&H0K;LfbIz*g>6Ik1nHh&_s~5-q_A!1o*;cM&^@FBkixbh9Y8vu zd%SW1-TMVfx*st>oE6HnJ!mz>`Eq!%SX4z(7?;oU+`J8pu|Ed1X~I#v4ix|Z002ov JPDHLkV1jV*9t{8h literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/catwalk_3.png b/Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/catwalk_3.png new file mode 100644 index 0000000000000000000000000000000000000000..680b2a96aba1b7b5f8170b1b764bc162a10eec71 GIT binary patch literal 678 zcmV;X0$KfuP)J2*d5*>O6E|7CzsSDkaIPJ%m?f_kGr;W|a`=wsRv#?~0LwUx&KYHI0_`d6zJ^l+F1cDr42t+J6>9ae1@ZG}0hbIMD&= zw;4r|*zfm()X9{K{JqryF(=TpxEUQl15iR_9nd12tOt}0b)7w^^#E}m_H?Rrp#xm6 z2PB{(iGtSy8iZ3Fpoyg|7x`HSfM6Y9EmBXxIsmH8I^aJ>pLKwZ^8x7ozPhAV_k2NZ zI5{U+Ftl&yoZygjKnA8ctLT6XXGkdn30C2N)F$zVaZXSSOb5W)UC{yj ze}T5aIsmCGSO@4~QwQ+>1sX=@bpWZ)I-qL&s&K9YMx&8C9Uz4G18<2iq-|+XmH+?% M07*qoM6N<$g80KVQ~&?~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/catwalk_4.png b/Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/catwalk_4.png new file mode 100644 index 0000000000000000000000000000000000000000..fa8795565621eff29b44e72222f7361cd7cbb8b1 GIT binary patch literal 794 zcmV+#1LgdQP)OR=-P$KPB}we;9_)O@s$P-ie|!>MT%E<@bI6zgV{QQOul2 z6z02M<^TNnrzpzy%oM+z;v3~s&5yRVlK~hLoN++YoTvUW4k&CAU-J)w11M}b!NdUw zr`WVO8E0D(CG4bZg?AoW=XH1XS@ zcO9@;EJm*b8}0 z*n}iW#AdS*m&-+KLtTBM!Gf$*%_#n8Nu0>-7NE0RsZ-0H`+W zfPXPQx(=}2&(DG&@RB6)R;yKZKA+|JfHvm>G8a#?y_^#y`vQ=T80|U1DeVhru*_Ll zM<8GwfCgx@zi;AzwmJgk04HyaQCOZ2u-;c7`vOoOhVZ@stRoOG2cQ912e1y%!8%|> z=v@cMJXUOaexQjxZXFOsQLY1;Y^0j}@@cYt>m3aM?QoqfQ49cbV;=5QVXor5C-0S@|G7OH@@oP8U5FY;y)LqYzOA2@$7p@(=^b`xdbg@|Yjb@Jz;? z0&&hk2IhHo`>%ug{yh3(?|-z`Cu7W}vb7d!zz!V%6yN!P?^ty152x7tTD`Rvnndv@ zKx=*1fbZ;O#;-sJphqswM1Psh(4MPu(%!TlqJ{wwMLY%szuxNeX+7!!;sdbe+u;$v z<@fjMAEC+^5Z7&}$8L@qXq{?ez{)KKn56m3wrA;i0Xi8no9O{6~+M6z%x1^xJH~C zAVrQHA@|?^_hB$@)f;251P5?Oh&n*J0n%_k05!n<0PY904fg|31Kbaw4rm+d0Mr0= zK;t@~hHP;tzo7Z=1(+wuJVE9Oio!fWE+Tj&6vBk=S45sGDXfKuuV0BLmU#B7~K00000NkvXXu0mjf D<(uG_ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/catwalk_6.png b/Resources/Textures/_Funkystation/Structures/brokencatwalk.rsi/catwalk_6.png new file mode 100644 index 0000000000000000000000000000000000000000..fa8795565621eff29b44e72222f7361cd7cbb8b1 GIT binary patch literal 794 zcmV+#1LgdQP)OR=-P$KPB}we;9_)O@s$P-ie|!>MT%E<@bI6zgV{QQOul2 z6z02M<^TNnrzpzy%oM+z;v3~s&5yRVlK~hLoN++YoTvUW4k&CAU-J)w11M}b!NdUw zr`WVO8E0D(CG4bZg?AoW=XH1XS@ zcO9@;EJm*b8}0 z*n}iW#AdS*m&-+KLtTBM!Gf$*%_#n8Nu0>-7NE0RsZ-0H`+W zfPXPQx(=}2&(DG&@RB6)R;yKZKA+|JfHvm>G8a#?y_^#y`vQ=T80|U1DeVhru*_Ll zM<8GwfCgx@zi;AzwmJgk04HyaQCOZ2u-;c7`vOoOhVZ@stRoOG2cQ912e1y%!8%|> z=v@cMJXUOaexQjxZXFOsQLY1;Y^0j}@@cYt>m3aM?QoqfQ49cbDkpm!aazGV>9ND`5-rRxD;#0EaAo%t?d!#}*)+o&mi=Q+4pZzEk`0IiTEyV#>gTe~ HDWM4fBHx>Pwgi0A3*=d#Wzp$PypuPbK& literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/curbs.rsi/brass_curb_square.png b/Resources/Textures/_Funkystation/Structures/curbs.rsi/brass_curb_square.png new file mode 100644 index 0000000000000000000000000000000000000000..462a573f186a579f7d62a7201cc9b588c1a330e8 GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^Tjq6^Yg~0d+FySdzmB`mlxYy_Hn-Njl8<0u|`tL3;tidR~COQb$!Y|4wcM2Ilr4nclkVzF`8v< Xo{%<4SEj`U7%~i=u6{1-oD!MhfjsLsP*BR~k_ocn@Wa#Ya2LrvE4xUtagrMqyhB>L{;DtayRn`9QAW|10}OW<%jf@1NdSTg z)|*>14r^R&e$;S%{=WmP_v-(7Y)Lezee$A_k-= Cv~AJ= literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/curbs.rsi/gold_curb.png b/Resources/Textures/_Funkystation/Structures/curbs.rsi/gold_curb.png new file mode 100644 index 0000000000000000000000000000000000000000..8edc2583d62e5dab28377aa53649a2be6a931bb6 GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}F`h1tArY-_ z&n)C^Fpyw1m^i=m__h6) z_m~|07{j>X%enSL7H@o+<+&PGmTQK;dz~q@B!R_M!~ aWGtWRapcUt_gjJPWbkzLb6Mw<&;$VX-dIoo literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/curbs.rsi/gold_curb_inside_corner.png b/Resources/Textures/_Funkystation/Structures/curbs.rsi/gold_curb_inside_corner.png new file mode 100644 index 0000000000000000000000000000000000000000..297406f525e4b23151fff1ce91df14fa1425596b GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}PM$7~ArY-_ z&utWB5D;KEm|o|$r0M(=g(U)=Y$fZslX!nT+19vwgPYyakSO0v&-p$@>MYwon?Kid gCm&EZ1H*%NObZ%W_Hg|DR0QIBy85}Sb4q9e03vfNEdT%j literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/curbs.rsi/gold_curb_square.png b/Resources/Textures/_Funkystation/Structures/curbs.rsi/gold_curb_square.png new file mode 100644 index 0000000000000000000000000000000000000000..dc95a5520a29c531c8fd663ba9adefe644cdb4ed GIT binary patch literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^TOC)DdnDFG)HcYF_-v(?=iIj>%@9b*St@e z%gAwv!*=K08b*caR}#~=&Q^YXCaIKd2N%Ph+CLTs270?E=@`q0f7xt(Uszu+ygS8P zwrFc(vZ1ZvabNp?zvphe{qCeq@`L)01`Z%vqW6GrIeX3fCDV@>N9eojgrzqbc>QNf zk?e#@PxxiD>$l|D<5PEBe5I4LK4GbOzPgg&ebxsLQ0H_OxuK)l5 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/curbs.rsi/gold_curb_ubend.png b/Resources/Textures/_Funkystation/Structures/curbs.rsi/gold_curb_ubend.png new file mode 100644 index 0000000000000000000000000000000000000000..4dd1bb728e8888e0e20977e9af2ac884230604cd GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}hdo^!Ln2y} z&+t6|yI$q&p@h^U=MrQ;H%)Bhd+*b?{_2ypx|JUuE`ta%JejcAM8wBJfN)N1Hc9S)D)ey+uW7Uv)=$1c^*QNUsYkI^k zpS{GLE@pgS)ni8f#*5z&>UefAv+XfTa-3$d%jMDjMo%42HbVmgg9(e-*&gs&l)Y1D z27=~of5H~=E_UJXVt!})msz~x=O5*ZZ3n+h1gc`F(2dnvBYegI=p6=6S3j3^P6lvfmG9i<|vMByBeC8_{cdWEw$bwV)p;~{l*S3IB|Yg-HiLGb7DU3 z%4gW}z@qLn2z= zUfamqY#_jTf&Y^LM^}%-6VnM35-x~L%t&nHc_cJ{!kdsK9X%OupUwLJyT0z~Ty2dd z+b?V0Q)F{o%Q&N5u>aVi?Ds?=$dDDYgDwqz6R<9 ag8Q*|Ua-V$ZRk1%;(5CIxvXTmkk8v?73l*Uvwto3F%xBT>j uwNsY!@J6j=2(InosCw_*+`%y8mA$lsvijMbri+1wGkCiCxvX#}*ljPH8{Xfx zyVW@*udQs0rh_?i!@|0fI)+IF-!&OL86;l0s~0gY+UeG@Mz-@I&|M6ku6{1-oD!M< D7}iUm literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/curbs.rsi/steel_curb_inside_corner.png b/Resources/Textures/_Funkystation/Structures/curbs.rsi/steel_curb_inside_corner.png new file mode 100644 index 0000000000000000000000000000000000000000..5952285bb58ad9a08540884d469c0c3d0f15cc0d GIT binary patch literal 128 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}R-P`7ArY-_ z&pC<$Rj~wqn3=%sz%wZ+#x~kP|1Px#?@2^KR9J=WmoW;$KoCV=BnMdL0;UeuvW1|HcouV@cowlyu(Foa5wVkHZxD;H zK^s{kB+dMCmjCxL#eO!i);7FpF<%m^^X1gr6O;moNH;LXM27`m9}j?Yt_1*?W*Gqa zERPO*Jny|dx4H%(vDP*s!Zgd+m1Pp0^oO=Z(cJ2~-N0hL#27<9%h{FX5cjiQZK$pl z-g_p4-1tQbpa2S>0HXt>=gSEZ=}KY<9gcfK7mU9FEh7a`00mHhu>nReqxAh?TNKTD zwfQLs+PD2zPf!OC{%X~=iVpk7^8w(T>jvKY=&<1H;|Y2JWFXNRugcD`vte%c<`jW9K~>Y9IlPQK;(GAp&J;gEbIzTPGAgd(nWB@P)+ZmT ze*akh)A9*HY>F(`Qaj^bGjU$g6m`pfIEVRm?)L|C7T*eavDNQl|FXP9Hs<%XVV+X^ zI~X_`ASiZSI)`FG{hdiu<^0)?l+LMV`XaBuzyw4mcqi0KZv5WuxAMZ3w~G`WeBGx1 z)y0=#@m2-~;~6&-|5w;C%qhOy_`R+y;>+JhomEVt8qrR&MxBd+USaTb^>bP0l+XkK D0>Wf; literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-c.png b/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-c.png new file mode 100644 index 0000000000000000000000000000000000000000..d0a367cb26b0f9b5f00d8e262c168ebc5c377a86 GIT binary patch literal 3807 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 VCrS>)f-nF8002ovPDHLkV1gtqZNmTn literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-j1.png b/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-j1.png new file mode 100644 index 0000000000000000000000000000000000000000..a93c6c44ca3e23701bda5a938ff89bb9d388b5f7 GIT binary patch literal 4470 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-j2.png b/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-j2.png new file mode 100644 index 0000000000000000000000000000000000000000..3fbfb3befc801d981710a52a0ddcc4225d9dc5dc GIT binary patch literal 4500 zcmV;F5o_*=P)Px`PDw;TRCt{2n_G;XS9QmKdw!FFrU{bg0s7#lCdJTDQ<8>8GR8Q@x3N7lp7EJ;`R;q~ zKJ0VO%y`C`6Ot$?WN9=r=bQblwf5R;@4YVnfp_VTo5V%~rl+UP17G|y?%0mr8xn+A z^P({ZjP8FRzjB%%KJ_FA4<6i5#zyi#^YEj1n|6Z`1094|&DQkf_H`&0&-3i}zOkWv zxsd`7PJIibGThNg^7&Wsx8FuSdy??x17x!&32(WNZ1yCi>QI-ko10Ff}5sHN~m?FaDU3Ah$wJ)Qt zoFc#U3dQB)sH^ADojFX>1f3zIL3bA3@ZCR*F zE}%ddgcKBu=XvDdM>ga?l!C#HA2h*^TS59bjcvGNlaR+4ol`XDaYwdevMwfzDO#5x zk4P{6mh{YvZ`c3;;d?)9f?c;Gy$bH=4yxlj7^w!#%+0f7^CmD5XNviSOB4%dF?mdK z>K7!h{(M9E?l1}nMCd$A!sNM zK)MLO4$>Pu(#B92@FnC*(T;M^nH?K6a7T9{Tpxe(b|b?Y-#PpfWT}A+s(j|*N7smW z;EP|zs0@GGZTQ>w8sU}ES%fwdxFcmS3Ur3aBJw<<`rqHC3goZY_p|+vAsiPR7aWfv zclVG6xc1J~hI7x@NkqM8!ND=rlt3HH7QpmKum4ghGMJ!4DCx&*aPB2jH`xCdb9G#^IuT1IY18WT0r}*U2-c?)1+j5gN zsL>!CWMvdt8DrcC0^7kA5=U>1H05Pls40{Fu(m_ZEZ4B#imqJkTTzg+j2?AtT z1?eIyBM8?+mg>YOkFL*ONGf-H8W~m*UWg1TmRC>#>EP5i#HH9)gFSvFBPzgP1Wq-idsc*6S zv9}^3sM2}y@R~Tj_d4}^A3}t6gcst}CJ?TV(_3}n*BGe;jQ!<5QT^oC*SsHm;%m(9 zdkmxl7`s=8px0pl1=!PH>9x!&feRQsS0cR7CM<3l;gxVkClQ{9EH$Vfc=);^T0i}P z4X=v=owPw0IE_g_;CnumQb4KX69nFxcPpVsxl}^9AxQVl_5f`|P?eyy2DNr8Xss!E z4vo;m_e)>|CToGVIf2P@gb=ijK6PCw^#c!Mj2RefaQzBHmc=Y3IdQI#avilDX`ee` z@46mtYQx_Gy1*0(Q5@4v@-;)!G$)QTx^YUDXMjO1&DcXQwAY%>V(RxkbX_s6qfZTt zrLN9k@)%P@U^FIA$O{b!x@ob_`~`B5E)RbQzK%FRfL3fi_5|rVLpuNV6#$C+zJkfx z0I1eHrpQq3c}$*Qk{0b3594jQdCmLA7^-(4!la$v0|iE*TC=?ons$`oIud6c50FCO zIs&9z|B$^74QBvj0BQFYYpMwf*fXH_O{HA8^9!pcyz=*RHyuKE7t!6TU=&73yLV?#p_2%savKS*E5i__4AuZBh0?_;xqaELl*gy)qJei@_>!l7th zM2dOxOD9Bn_9c;BJRx+{#BFTj+3$U0jf5XQ^(4jOd33zQBZodp^6CpBn|Vc;BBQu^ z4wEj~C{Oy-${wEMfCg8veEI|Ed~p2^L&JN3kmw{vq$y*yGQKNu97+1(ZyCQ~4>Iye zqYkR`JJ1EPR44k)f38}VetquX!GmkqudLoa{`j%M^Ug1x72%$Hj80l0TtrZ2shcCD z(c8pY^o#MKZnfWGaX~tfiLl#AbH-MA~uY@dBxzbK4`3?vOcHKpy4QZi4Wyqk6 z&bvdi9fpj`F!5DXks<`lwl6d1S16hnIoq8;NDsUc#o`RAvta86>jZ1-(S`tbChIaaHDw-u{PEX34c{$`Z>)kLyL22Glu1ti9O0L3Mkggp&wm%R zqI2wNgyRvPcn%qq$u1s82Guvm3$#WC)gI3>@rmaUjz{O%)1Vbg&wm#orPax|I?A9- zcIi0%xaGCzkG?hbF1<_d(jPYsbqM|;A3_^mgKu?z{_Um>SLdw`MBZ-NFckiqLm%Zk zhkt@7*HP^`bbJ*V)Bq5kXN#S#YfD}#?-f2GOx7m5c;X#Bc^I;R6z zQyu}~;EYb9<0WKRvvt3$i%z@bv!^h5N_zICcf0|H$_91PMwV)TL3I|mHCkIp09(Vfc;SFz$XA;AdxNrzE|El3&#LfEQMscy$= zjRG6C)A-wOLr8;DZXimd$gqwG8i2NKZz+4tPul|X{SsN8VX`(x zWvJGiEs8oG2nUn2z_oP*og`!zkK=9HO?=|HRR$>C`Y|)W2S|ZCw%ulvMh|!`cYd`s zx^!*vR5*hq%`QN1L9&(wcV#g}>k7gxBZD%<)fwVn|GR*dXMhm4ES*Lc>EV@;r7@h^ z7F&D}!uI|hm$AkuwX%=rN*bX@H%@7GOSUJFC)V;tf%H*Xg!IZNoB=+dxH_}0o5m-P z67IgoBE7s4CXJD$3OKHvc)$0r3)`-DL)!`iTd@+-mc{#|$1ReqPzdSTl>OvUyoo)7 zA?~#bl=j|_Nt(FzZ8+oaLAWIgee*&b=~D7sMr$FJ(1IUaSK_-4?(<(~dymh#n+{=$ z4B=Z`5h|ltnnU=uX0TF$%6`Xwe`*c41B}U6Wi8eI-3I^yLdm4Y8-e4ae zU>hK|=<2(YTHulX$3G5u_bEN{)pdK6ecJiplSm;b3JrOT5E2pAso(n$$qJOpsx44I z@GwXRy=3e9r!I{1zFk`f2km;$l=Y}@gl21&*M*7 zlIsAaT1TIvy6-`xUuAOh1mV_?v(V}ccwWo@wMYtq=R4eV!xm0<7f6>bqvNGDTX0|i zgLT2`-G?j~$}8czlEMH8CO`XR4<2U^mjP5pX}U>HdgQCCl5k7c`SSNy8KL^guM-3wQc4S$Fp%bI&^f-m7*i{IEOl*r9$jG4 z&YDBmU7-P$J3eh|{6#^rIK%&*sWCY*vU12kKp!lnwI+&VHm{icg*(3hovRpCaOpyd zELAZ@iYbbr@B!$Y&cb;*j*rPZm@MMlO^4Wd>hM5@??^(=A`Z7TYOtUZ8Y= z$rI+9KBkBmz^RE)_z6XLpY)BFKUI(k{+)J zq>J)GE@vsT?Ha!4lV!1uKGEo?X@L}4TV2v6bkc%60+VC%g81w&ZF%on4_K9qESy33 z6@()hKx6s|#v0PgiAn$OgJH|#b<)8d+p#7Y>C?(&%p`4#^#OF;!X4S(li}D9*y*pE z0I{MWgXw>Pf#T{pq*unM%%%?2@iocVK#A$;X=7`6f=3R1gpHbtua~B#rp$Mye+C$y ze*ACO6icV4r_JXc{U%7cs-IZCWv|g@0$Hjej79_%oazKleFCR3iSX-~B0{xh(cJ}G zk}GnHEGsfPzj$`QE7-lypf&&cSMh}y5<)FyhBss`%njD^%iO$)A)9x|*A#ryw- z2l(6f8sXQFVY%l89>NPTMKLJM0_e1jDRQJApraO#9Qx>nTlpPtfVUc-Fg&F4ZKJmq mpYV?NfVUf;@GkwK)Bgc=fxW073NG{j0000Px|VM#C&(4>B!jn%vIjxTA^zZoIb0ivDL5PYCLQEZ2m-SBA5DgFT z>d${Tt$sP30nc>)7##=LbuENLr*P&jBfQ*)w|E1=E zyF2*yb3gk3c|A$K{oIdm@9rSH+F!B3o%f|Fy1m642ru^;+sZcRIN+JiA5S~}w6o*2 zt=BSDi*Qm1D}nUV$Yc$|t42CWwAQHNDB91XN;y<<3>_BGafB+4;`blCr3`Re*Jzon zL0C2-kwPY`kzNMjmhBJ%6%^5>F;sCBRm!8|5FHdyg)F60f4sE}c=pM!5DgC?qyV9T z7#)tI$A^fs=ZHrKO%#Oy6(THw^gMJacgxNL`27ck%3niB4JtsFvZ(wO;*oPimyQu$ zJW71^BysK%s+2RfMFpa3XL$C>uS`4sj12VJ)@g6iYD6N5-7ue~hGvqE1p)@HT%~1J z6WP2^{@MW1$N(xF$3J_N(no)| z9~WUch-4iyS&!AQkfw%N)Mi{xo^N1YZJJD`3fq=^cqRjJfGTAX*0jkD%wP#rL@T71 zY;B^o$<&Qa_BIRm99s4)u`easU_`t@(^CzdhNBX(_LL% z`s2fQb#-ZX!GqduU86fYJ1gI(S3j*)SU`H!See-fJ4sDdf|_K4`{vIf<0YuixTL%U zElsspH7y7`HDlLixCGW~Z_#RMmORABpMQscYJcTBw{0yQ8=s)(&7C9~??MOTs4yfL zJdO$q#JM4)lR}3D?1ol?i^mX_LwLDwif+4cfp+iiK>2xeaTJ7wD&=tJ-%mU~g4ebV znXE;+NoLhIP%P$H)G~`dbp0Hess%LZWg7|e!$f0QioI`B`sm%;xCDg7@Zr}9&VR^~ znwTA%95nF4t^@RFSnka^g5CW0#IQQP`tlP4K1ABi|Q-2mm02 zRf(z);(8FIWNDqkKm8s!BBfy0TVZ)1HRIWzc>uJgTy2-*VP<~Un;|vptkf_h8kufQn3o7DY%W$=JKU_(V0;8@^}C+e8AZt_6`uBJ30z#nC_Rp>*m1 z&u_OX7aSKv-xMl>?wqN};tf*I>+b_=R0DUfWuhuit_|qN4&jEE10lR-78!_wpyI zsQ&7AQ9%)5+ej}1(k31q#9P>bJHLY$cPlg|>vnegJhjQaVKM+v(d|D45Yi0HghE|W zthJ^$YvC^Fpnc6|KHT>j`NO-2$1a<6ET^RQ^Q2d8s|0PbXkhH!U!Y54=&(eb8$w3` z@z@YDSwriZZ{jXo%?rEY%KJOJOKkr}qB0qijJ?fu0F(zbk8l5a0;P2MQ*nGm;w|35 zy3J2~XAz)L*f#vO)IzH zE?mv=5ou;#sY(zg0;zBNCRnblQcEAknYWx1qZU8d6?0W|{tZ4aS}qeR04?0oqrH>h~^=Rd@*X+{;Y1Q&XRf3`=27kh;i zLqypNrZAEY!bwrRbOUZe^1#N&aTnZ=ch7pfd%nuLP2VDS`XI#S9x)S{;dOY8b{DKf zdbK3xu3*K2SwxW{mm6mwn`hBov&rUshOS*9x_TN_9L7I$gwm<~x1}TG-ScJbwk!i_ ze}6{$XS4)#tk6M`IEvwNFCTrQdH17NkuI5Uhp%}!-WExdS zqQl~hhn+S;ot>Tf-~Zz`*i8!%(sX8pZJW|l07$foP3lKJI*vexL?c)5&mO)#8PK*) z+YQZtg|IzjRRhwgLIrsQ=ETuu{Sz&@;6g9|_{^ic^wLY8YQq<8@##&_1Q(AX-4vz% z{Rk&zZf#OBy7yDx2VBe17r+sU_{&$}}Nd4(8rF z9=m?t4g7@45}1t7TMf-v)w3Xq5ni?F>&GFos*Y&n5_22p(0}j{;iW$Oss@&?-@=EP zSvYeRnTDuRfJFPtP^B?+afG-qidF*uTn~xHR-&tCrnq6(&%>^3LHPyjrUls5jfM+k zrwqabWf;i1e(BM%L4j0Mo=aKo26>w*8c0m=49K!w07+t(}PT=iN~%07F8=BC%ACzddwypP{HS`8b~+HqoJ`G zuVxP6)$=shB^mml8~@B9+G}HWzZD{+WcOQPnH$iNQL26iaGi{8Rfm@Yb)ncj>=yjHcF^d`gIAc>)QpglD^8V3 zSvO7o;43(@7vJbV1{~E&A@WxsED}WudlEfo$0i4aV8>>+%n6W4DNst6@xd})sT4oh z6$3GjElE0->1USt38hIiohef>fzPWT&)}6Ijvd@X7{>JMeGR|=z!YM_(_1`ty&2rV z5-IiVELo7H5>ndID3w^2R6}| z@z~$J6aUPgcz(Nu6cfB4!LB#M%E@Ekas!sW+U;{<)FRP%HxE4e9df0Rvx6rI2L4Q< zc{!tde}*%AF@?XpG36Lc-MdM9OE!YEh%OyNW}0wXmUG|yIV3DGg%@N95mee@Pi=D9 z*o9W(S>!l(%%F7zcpfGCv3eT5EP}c6oJAshk02n7-9;7ZVA|vNc;MDb1NnX;g9ah9y`Dzyv;@ zUbPLaB8ovwm8$@&l73UkQSzo4u=9=r4=H89WZfIn1C`)*`m+;a@ zrl0Sawt4Z`n^TrRa_QG}ICP3+`y=R57N>bBR>MMsodgvi5+0tVX}_z9{oTLBKhsk= ziVa~i#$E6rO)IwmkR3Q;uJDO8!~vx^Y^CO+2hSB5&HB23vTNiBWYKxNt@9vvjkUn3s7f=Efb-bfXVtNDnV3$ zRo#e{X~xRTHYbP>U|FQoX=YWY={?v@>C}O8F{W@AuBN*EVInXvx{g6Q#Q9;Qnv()0mZZLBP{2JS0>tM%Fh#zUL(q0L0AqdEMV8&ZD>Cg8w4L+ z8o_OSka+wW&fLXZxO#~wdx>b+^d=C3D0=~!EZ-xPLU@@Q_z9IX?CR>$<~KHiXP^Aa zZSUlCc6REYcKr{adF7>lx}jOx)zziH{oId0$|-HM^y;UzupNU2+2xj8RRdP_Y{MZ8 z#>_Gs8zRmRq5W~Rkf>rFDTXMV=&g+9wyx1A#ee?fpDX(B_>K*L)3RLKb#s|mcEYj^ z89R}@-js;~hz&Ze!xGWxMZ$}{)A~1ay8P!T(#s$cDNrG@sun9%YiP7}EvVus(#sfH zT`-RF#|bZ=G_;x-$Q>Vm&dyH#)7|f&!#pbRQK9+S4nQ<|0Ud@2+ct!%I5eM8gboWc x8vl-80(SsE;B%JGn;-Cb%NP8BFXXe8{{_AxiO35f1fl={002ovPDHLkV1gP}r+okb literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-s.png b/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-s.png new file mode 100644 index 0000000000000000000000000000000000000000..d60d9ec6564b74bfe7c03d69ce497e08e3ab2e24 GIT binary patch literal 1456 zcmV;h1yA~kP)Px)YDq*vRCt{2o6Tz*M;M2nnboRR6vs)^I<*ZZDJ{e;rVuDS^ioI=m@%z?)e>)tl%>6L0zwXJ_64V6VN+aCZyS?I67l z!}bQI-=*JLqrbU&BI7tME-uRUg^!)_bsi%I+kXK}B-S47zy{-I&HZcZsR<^8g&Y`kUcS3v;lC>1<=V zujsed>23T`h!XkDQL$vW3eHKfkM@MG3O5w?-xNatD2YBmM+^ zK;ofwkcp{8Z=6g(T#bSb_&HlZ#;eg-d<4*BK0meG@pHC-APb9{p$M4lbTllgfMLNS zp*#MGEug-zEQp|LQyji{3<8}e_fWo1>-S&qv}R}JHh3QU&mN!~=jgZAsa>4MpSyZ$ zH@N1X7%kzZgsL^r&9_nh6nbhJ@BAFi3-6%?_S#zvc3vU}yO_g$%-&06uut!wKTo|i zRyMyH1L4@SCb#y>M1ICua&e4bTTkF*4mqyGh ziyt|_n^~YSJ%>5mNq}r6b|V5~FK1U`vP)1&gOi^rMPuoGWH=acKw13A0jl0)|LJ`i zAAOl9A1oJ$8K876IDlX)QYyWa5bnxkuV=OY>;Y$%zZ$t-7C#PwMw7Fj{ebj)$!Y}?V#g9W^`V#Gjw>bC3Po!!J>p|Q45}OjK zUD`356@qP!D*Eou%57$@-xzT~S^OwiuKavgjKI*u6`91^yRwx8>u@Ul<;?Yw@7kCY z5j?HYz}l_vQeAgh{8Yef-o1%yZQi|!Ibzf*gCD(o_s83U0_h)8XcGh*r@>0D@_j^v z?O$)C+)x%j>H~(mTkJi$L-X1&UdY^8Bk&FZz8Fo3l^W+}QYu}Pp zS^UTWrrY7n^4FN|Zd|b$*gCxkp!Dbwl;G5cSVOTpxFiyls347{>zISxkvhuaM-Gr) zhwkbMZ!LZj_ne_u#omdL^EY84GGy!)gHmxOMo``1i^oiT`1$A`Q4&86f%XRVxeqW0 z?HC@VqS3F!b10oK*iurdXjq+q45`mAVLJbg*jg4p4uO8x{%cBtbKGP^+t`c7+LILC zO|kiYT4nJg2lQKO!L#F?l={N5^jqsA*URQts#K{`rAn3FJpBipSlc<`m;yZj0000< KMNUMnLSTX&!N~jo literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-t.png b/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-t.png new file mode 100644 index 0000000000000000000000000000000000000000..cfbdeb96d0f06f9573315a8044ee28bc69c72e0e GIT binary patch literal 3843 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 Xf&Aup<*Uzm00000NkvXXu0mjf(_@Qj literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-y.png b/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/conpipe-y.png new file mode 100644 index 0000000000000000000000000000000000000000..7bec1a5e5890246047f901f2ad56d488fe1d2502 GIT binary patch literal 4356 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-c.png b/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-c.png new file mode 100644 index 0000000000000000000000000000000000000000..fc568c2063e2666e489b93397edb17b983f4cd28 GIT binary patch literal 4411 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 BpY;F$ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-cf.png b/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-cf.png new file mode 100644 index 0000000000000000000000000000000000000000..3910b9de3aeca6a61951bc998ac8c938b1b87bfb GIT binary patch literal 4930 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 A>i_@% literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-d.png b/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-d.png new file mode 100644 index 0000000000000000000000000000000000000000..6eec51931ba382cf0130a32b84399bbb886755ba GIT binary patch literal 2660 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 b?D78rg%pch2{ALm00000NkvXXu0mjfqamUY literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-j1s.png b/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-j1s.png new file mode 100644 index 0000000000000000000000000000000000000000..350f6db11b110a7dd32830c8eae469f8b36307fa GIT binary patch literal 5599 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

fP>h4^>3w3Y5?ME8r_s+aKS=h2I<{ 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 VA-;@LeIWn<002ovPDHLkV1o2IUBUnW literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-j2.png b/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-j2.png new file mode 100644 index 0000000000000000000000000000000000000000..e4b8cc6ae2e25a567a57016a7831fbc3c2f097ff GIT binary patch literal 5032 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-j2s.png b/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-j2s.png new file mode 100644 index 0000000000000000000000000000000000000000..193ed219e68fc0c1fb90fcc32c59adfe41d3c18c GIT binary patch literal 5581 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 b{DA)f3+G3)uB3rF00000NkvXXu0mjfqB_FF literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-j2sf.png b/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-j2sf.png new file mode 100644 index 0000000000000000000000000000000000000000..3a6812f8e311b54ce7a604e27ec775509d75c1d1 GIT binary patch literal 5724 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 YFUXwv109BTUjP6A07*qoM6N<$f-%vrY5)KL literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-sf.png b/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-sf.png new file mode 100644 index 0000000000000000000000000000000000000000..ef25a0dfc44513af1fce679b0951ff8ab1b151ed GIT binary patch literal 1443 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 Hu0mjfsS5U} literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-tf.png b/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/pipe-tf.png new file mode 100644 index 0000000000000000000000000000000000000000..b5730c8a54e62678431fce931b9259880bf7bd42 GIT binary patch literal 4295 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 DWAk$t literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/signal-router-flipped.png b/Resources/Textures/_Funkystation/Structures/mailpipes.rsi/signal-router-flipped.png new file mode 100644 index 0000000000000000000000000000000000000000..63ba55763123df3964126871825bea24bc41d7e0 GIT binary patch literal 5462 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 literal 0 HcmV?d00001 From a685247d838fbe64f723af435a3e5a6dd06d2914 Mon Sep 17 00:00:00 2001 From: mkanke-real Date: Sun, 8 Jun 2025 15:45:53 +0900 Subject: [PATCH 2/7] Random spawners port --- .../Storage/Canisters/gas_canisters.yml | 98 ++++---- .../Entities/Markers/Spawners/general.yml | 33 +++ .../Entities/Markers/Spawners/maints.yml | 234 ++++++++++++++++++ .../Markers/Spawners/spawnertables.yml | 81 ++++++ .../Structures/Furniture/chairs.rsi/meta.json | 3 + .../Furniture/chairs.rsi/rainbow_chair.png | Bin 0 -> 1024 bytes .../Storage/canister.rsi/can-rainbow.png | Bin 0 -> 1312 bytes .../Structures/Storage/canister.rsi/meta.json | 3 + .../Structures/Storage/closet.rsi/meta.json | 3 + .../Storage/closet.rsi/rainbow_locker.png | Bin 0 -> 962 bytes .../Structures/Storage/tanks.rsi/meta.json | 2 +- .../Storage/tanks.rsi/rainbow_tank.png | Bin 0 -> 1996 bytes .../Tools/rainbow_toolbox.rsi/meta.json | 14 ++ .../rainbow_toolbox.rsi/rainbow_toolbox.png | Bin 0 -> 597 bytes 14 files changed, 423 insertions(+), 48 deletions(-) create mode 100644 Resources/Prototypes/_Funkystation/Entities/Markers/Spawners/general.yml create mode 100644 Resources/Prototypes/_Funkystation/Entities/Markers/Spawners/maints.yml create mode 100644 Resources/Prototypes/_Funkystation/Entities/Markers/Spawners/spawnertables.yml create mode 100644 Resources/Textures/Structures/Furniture/chairs.rsi/rainbow_chair.png create mode 100644 Resources/Textures/Structures/Storage/canister.rsi/can-rainbow.png create mode 100644 Resources/Textures/Structures/Storage/closet.rsi/rainbow_locker.png create mode 100644 Resources/Textures/Structures/Storage/tanks.rsi/rainbow_tank.png create mode 100644 Resources/Textures/_Funkystation/Objects/Tools/rainbow_toolbox.rsi/meta.json create mode 100644 Resources/Textures/_Funkystation/Objects/Tools/rainbow_toolbox.rsi/rainbow_toolbox.png diff --git a/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml b/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml index e55f838af2e..b2ef01d4e27 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Canisters/gas_canisters.yml @@ -1,52 +1,6 @@ -# SPDX-FileCopyrightText: 2020-2021 Swept -# SPDX-FileCopyrightText: 2020-2021 DrSmugleaf -# SPDX-FileCopyrightText: 2020 ike709 -# SPDX-FileCopyrightText: 2020 20kdc -# SPDX-FileCopyrightText: 2020 py01 <60152240+collinlunn@users.noreply.github.com> -# SPDX-FileCopyrightText: 2021-2025 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> -# SPDX-FileCopyrightText: 2021-2023 Leon Friedrich <60421075+ElectroJr@users.noreply.github.com> -# SPDX-FileCopyrightText: 2021-2022 Paul Ritter -# SPDX-FileCopyrightText: 2021-2022 Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com> -# SPDX-FileCopyrightText: 2021 moonheart08 -# SPDX-FileCopyrightText: 2021 mirrorcult -# SPDX-FileCopyrightText: 2021 ShadowCommander <10494922+ShadowCommander@users.noreply.github.com> -# SPDX-FileCopyrightText: 2021 Galactic Chimp -# SPDX-FileCopyrightText: 2021 Acruid -# SPDX-FileCopyrightText: 2021 Pieter-Jan Briers -# SPDX-FileCopyrightText: 2021 collinlunn <60152240+collinlunn@users.noreply.github.com> -# SPDX-FileCopyrightText: 2022-2024 Kara -# SPDX-FileCopyrightText: 2022-2023 Kevin Zheng -# SPDX-FileCopyrightText: 2022 Mervill -# SPDX-FileCopyrightText: 2022 Justin Trotter -# SPDX-FileCopyrightText: 2022 Rinkashikachi <15rinkashikachi15@gmail.com> -# SPDX-FileCopyrightText: 2022 Rane <60792108+Elijahrane@users.noreply.github.com> -# SPDX-FileCopyrightText: 2022 TekuNut <13456422+TekuNut@users.noreply.github.com> -# SPDX-FileCopyrightText: 2022 Jacob Tong <10494922+ShadowCommander@users.noreply.github.com> -# SPDX-FileCopyrightText: 2022 Profane McBane -# SPDX-FileCopyrightText: 2023-2025 Nemanja <98561806+EmoGarbage404@users.noreply.github.com> -# SPDX-FileCopyrightText: 2023 Łukasz Mędrek -# SPDX-FileCopyrightText: 2023 lzk <124214523+lzk228@users.noreply.github.com> -# SPDX-FileCopyrightText: 2023 potato1234_x <79580518+potato1234x@users.noreply.github.com> -# SPDX-FileCopyrightText: 2023 Vordenburg <114301317+Vordenburg@users.noreply.github.com> -# SPDX-FileCopyrightText: 2024-2025 K-Dynamic <20566341+K-Dynamic@users.noreply.github.com> -# SPDX-FileCopyrightText: 2024 TGRCDev -# SPDX-FileCopyrightText: 2024 Plykiya <58439124+Plykiya@users.noreply.github.com> -# SPDX-FileCopyrightText: 2024 Velcroboy <107660393+IamVelcroboy@users.noreply.github.com> -# SPDX-FileCopyrightText: 2024 MilenVolf <63782763+MilenVolf@users.noreply.github.com> -# SPDX-FileCopyrightText: 2024 lapatison <100279397+lapatison@users.noreply.github.com> -# SPDX-FileCopyrightText: 2024 Flareguy <78941145+Flareguy@users.noreply.github.com> -# SPDX-FileCopyrightText: 2025 Hitlinemoss <209321380+Hitlinemoss@users.noreply.github.com> -# SPDX-FileCopyrightText: 2025 Tiniest Shark -# SPDX-FileCopyrightText: 2025 beck-thompson <107373427+beck-thompson@users.noreply.github.com> -# SPDX-FileCopyrightText: 2025 Whatstone <166147148+whatston3@users.noreply.github.com> -# SPDX-FileCopyrightText: 2025 ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com> -# SPDX-FileCopyrightText: 2025 Winkarst <74284083+Winkarst-cpu@users.noreply.github.com> -# SPDX-FileCopyrightText: 2025 ActiveMammmoth <140334666+ActiveMammmoth@users.noreply.github.com> -# SPDX-License-Identifier: MIT - - type: entity abstract: true - parent: [ BaseStructureDynamic, BasePaperLabelableVisualized ] + parent: BaseStructureDynamic id: GasCanister name: gas canister description: A canister that can contain any type of gas. It can be attached to connector ports using a wrench. @@ -159,6 +113,7 @@ nodeGroupID: Pipe rotationsEnabled: false volume: 1 + - type: ItemSlots - type: GasPortable - type: GasCanister gasTankSlot: @@ -665,6 +620,55 @@ - type: Lock locked: true +- type: entityTable + id: RandomCanTable + table: !type:GroupSelector + children: + - !type:GroupSelector + weight: 100 + children: + - id: StorageCanister + weight: 10 + - id: OxygenCanister + weight: 7 + - id: NitrogenCanister + weight: 7 + - id: HydrogenCanister + weight: 4 + - id: PlasmaCanister + weight: 4 + - id: NitrousOxideCanister + weight: 3 + - id: AmmoniaCanister + weight: 3 + - id: CarbonDioxideCanister + weight: 2 + - id: TritiumCanister + weight: 2 + - id: FrezonCanister + weight: 2 + - id: BZCanister + weight: 1 + - id: HalonCanister + weight: 1 + +- type: entity + name: Random Canister Spawner + id: RandomCanisterSpawner + parent: MarkerBase + placement: + mode: SnapgridCenter + components: + - type: Sprite + layers: + - state: red + - sprite: Structures/Storage/canister.rsi + state: can-rainbow + - type: EntityTableSpawner + offset: 0 + table: !type:NestedSelector + tableId: RandomCanTable + # Broke Entities - type: entity diff --git a/Resources/Prototypes/_Funkystation/Entities/Markers/Spawners/general.yml b/Resources/Prototypes/_Funkystation/Entities/Markers/Spawners/general.yml new file mode 100644 index 00000000000..6a92da4a16e --- /dev/null +++ b/Resources/Prototypes/_Funkystation/Entities/Markers/Spawners/general.yml @@ -0,0 +1,33 @@ +- type: entity + name: Random Chair Spawner + id: RandomChairSpawner + parent: MarkerBase + suffix: 100 + components: + - type: Sprite + layers: + - state: red + - sprite: Structures/Furniture/chairs.rsi + state: rainbow_chair + - type: EntityTableSpawner + offset: 0 + table: !type:NestedSelector + tableId: RandomChair + + +- type: entity + name: Random Chair Spawner + id: RandomChairSpawner50 + parent: MarkerBase + suffix: 50 + components: + - type: Sprite + layers: + - state: red + - sprite: Structures/Furniture/chairs.rsi + state: rainbow_chair + - type: EntityTableSpawner + offset: 0 + table: !type:NestedSelector + tableId: RandomChair + prob: 0.5 diff --git a/Resources/Prototypes/_Funkystation/Entities/Markers/Spawners/maints.yml b/Resources/Prototypes/_Funkystation/Entities/Markers/Spawners/maints.yml new file mode 100644 index 00000000000..95479f71fc1 --- /dev/null +++ b/Resources/Prototypes/_Funkystation/Entities/Markers/Spawners/maints.yml @@ -0,0 +1,234 @@ +- type: entity + name: Liquid Tank Spawner + id: RandomTankSpawner + parent: MarkerBase + suffix: 50 + placement: + mode: SnapgridCenter + components: + - type: Sprite + layers: + - state: red + - sprite: Structures/Storage/tanks.rsi + state: rainbow_tank + - type: EntityTableSpawner + offset: 0 + table: !type:NestedSelector + tableId: RandomFuelTank + prob: 0.5 + +- type: entity + name: Liquid Tank Spawner + id: RandomTankSpawner100 + parent: MarkerBase + suffix: 100 + placement: + mode: SnapgridCenter + components: + - type: Sprite + layers: + - state: red + - sprite: Structures/Storage/tanks.rsi + state: rainbow_tank + - type: EntityTableSpawner + offset: 0 + table: !type:NestedSelector + tableId: RandomFuelTank + +- type: entity + name: Maint Locker Spawner + id: MaintLockerSpawner50 + parent: MarkerBase + suffix: 50 + placement: + mode: SnapgridCenter + components: + - type: Sprite + layers: + - state: red + - sprite: Structures/Storage/closet.rsi + state: generic_icon + - type: EntityTableSpawner + offset: 0 + table: !type:NestedSelector + tableId: MaintLocker50 + prob: 0.5 + +- type: entity + name: Random Maint Locker Spawner + id: RandomMaintLockerSpawner50 + parent: MarkerBase + suffix: 50 + placement: + mode: SnapgridCenter + components: + - type: Sprite + layers: + - state: red + - sprite: Structures/Storage/closet.rsi + state: rainbow_locker + - type: EntityTableSpawner + offset: 0 + table: !type:NestedSelector + tableId: MaintLockerRandom + prob: 0.5 + +- type: entity + name: Random Maint Locker Spawner + id: RandomMaintLockerSpawner100 + parent: MarkerBase + suffix: 100 + placement: + mode: SnapgridCenter + components: + - type: Sprite + layers: + - state: red + - sprite: Structures/Storage/closet.rsi + state: rainbow_locker + - type: EntityTableSpawner + offset: 0 + table: !type:NestedSelector + tableId: MaintLockerRandom + +- type: entity + id: ToolboxMechanicalMaints + name: mechanical toolbox + suffix: Maints + parent: ToolboxMechanical + components: + - type: StorageFill + contents: + - id: CrowbarOrange + prob: 0.8 + - id: Wrench + prob: 0.7 + - id: Welder + prob: 0.5 + - id: Wirecutter + prob: 0.6 + - id: Screwdriver + prob: 0.6 + - id: FlashlightLantern + prob: 0.2 + - id: ClothingHeadHatHardhatBlue + prob: 0.2 + orGroup: mainttoolboxhats + - id: ClothingHeadHatCone + prob: 0.2 + orGroup: mainttoolboxhats + - id: HandheldGPSBasic + prob: 0.2 + - id: DrinkSpaceGlue + prob: 0.05 + - id: RadioHandheld + prob: 0.2 + - id: SheetSteel10 + prob: 0.1 + orGroup: mainttoolboxdrink + - id: DrinkBeerCan + prob: 0.02 + orGroup: mainttoolboxdrink + - id: DrinkSpaceMountainWindCan + prob: 0.05 + orGroup: mainttoolboxdrink + - id: FoodSnackRaisins + prob: 0.05 + orGroup: mainttoolboxsnack + - id: FoodSnackSemki + prob: 0.05 + orGroup: mainttoolboxsnack + - id: FoodSnackCnDs + prob: 0.05 + orGroup: mainttoolboxsnack + +- type: entity + id: ToolboxElectricalMaints + name: electrical toolbox + suffix: Maints + parent: ToolboxElectrical + components: + - type: StorageFill + contents: + - id: CrowbarOrange + prob: 0.8 + - id: CableMVStack10 + prob: 0.5 + - id: CableApcStack10 + prob: 0.5 + - id: Wirecutter + prob: 0.6 + - id: Screwdriver + prob: 0.6 + - id: FlashlightLantern + prob: 0.2 + - id: trayScanner + prob: 0.2 + - id: ClothingHandsGlovesColorYellowBudget + prob: 0.1 + orGroup: mainttoolboxgloves + - id: ClothingHandsGlovesFingerlessInsulated + prob: 0.1 + orGroup: mainttoolboxgloves + - id: ClothingHandsGlovesColorYellow + prob: 0.05 + orGroup: mainttoolboxgloves + - id: DrinkSpaceGlue + prob: 0.05 + - id: RadioHandheld + prob: 0.2 + - id: SheetSteel10 + prob: 0.1 + orGroup: mainttoolboxdrink + - id: DrinkBeerCan + prob: 0.02 + orGroup: mainttoolboxdrink + - id: DrinkSpaceMountainWindCan + prob: 0.05 + orGroup: mainttoolboxdrink + - id: FoodSnackRaisins + prob: 0.05 + orGroup: mainttoolboxsnack + - id: FoodSnackSemki + prob: 0.05 + orGroup: mainttoolboxsnack + - id: FoodSnackCnDs + prob: 0.05 + orGroup: mainttoolboxsnack + +- type: entity + name: Random Toolbox Spawner + id: RandomToolboxSpawner50 + parent: MarkerBase + suffix: 50 + placement: + mode: SnapgridCenter + components: + - type: Sprite + layers: + - state: red + - sprite: _Funkystation/Objects/Tools/rainbow_toolbox.rsi + state: rainbow_toolbox + - type: EntityTableSpawner + offset: 0 + table: !type:NestedSelector + tableId: RandomToolbox + prob: 0.5 + +- type: entity + name: Random Toolbox Spawner + id: RandomToolboxSpawner + parent: MarkerBase + suffix: 100 + placement: + mode: SnapgridCenter + components: + - type: Sprite + layers: + - state: red + - sprite: _Funkystation/Objects/Tools/rainbow_toolbox.rsi + state: rainbow_toolbox + - type: EntityTableSpawner + offset: 0 + table: !type:NestedSelector + tableId: RandomToolbox diff --git a/Resources/Prototypes/_Funkystation/Entities/Markers/Spawners/spawnertables.yml b/Resources/Prototypes/_Funkystation/Entities/Markers/Spawners/spawnertables.yml new file mode 100644 index 00000000000..6e42ab55b0e --- /dev/null +++ b/Resources/Prototypes/_Funkystation/Entities/Markers/Spawners/spawnertables.yml @@ -0,0 +1,81 @@ +- type: entityTable + id: RandomFuelTank + table: !type:GroupSelector + children: + - !type:GroupSelector + weight: 100 + children: + - id: WeldingFuelTankFull + weight: 10 + - id: WaterTankFull + weight: 10 + - id: WeldingFuelTankHighCapacity + weight: 1 + - id: WaterTankHighCapacity + weight: 1 + +- type: entityTable + id: RandomChair + table: !type:GroupSelector + children: + - !type:GroupSelector + weight: 100 + children: + - id: Chair + weight: 10 + - id: ChairFolding + weight: 5 + - id: Stool + weight: 3 + - id: ChairWood + weight: 3 + - id: ChairGreyscale + weight: 1 + +- type: entityTable + id: MaintLocker50 + table: !type:GroupSelector + children: + - !type:GroupSelector + weight: 100 + children: + - id: ClosetMaintenanceFilledRandom + weight: 1 + +- type: entityTable + id: RandomToolbox + table: !type:GroupSelector + children: + - !type:GroupSelector + weight: 100 + children: + - id: ToolboxEmergencyFilled + weight: 1 + - id: ToolboxArtisticFilled + weight: 1 + - id: ToolboxMechanicalMaints + weight: 1 + - id: ToolboxElectricalMaints + weight: 1 + +- type: entityTable + id: MaintLockerRandom + table: !type:GroupSelector + children: + - !type:GroupSelector + weight: 100 + children: + - id: ClosetMaintenanceFilledRandom + weight: 20 + - id: LockerElectricalSuppliesFilled + weight: 3 + - id: LockerWeldingSuppliesFilled + weight: 3 + - id: ClosetToolFilled + weight: 3 + - id: ClosetEmergencyFilledRandom + weight: 1 + - id: ClosetEmergencyN2FilledRandom + weight: 1 + - id: ClosetFireFilled + weight: 0.3 diff --git a/Resources/Textures/Structures/Furniture/chairs.rsi/meta.json b/Resources/Textures/Structures/Furniture/chairs.rsi/meta.json index 1616f665c8a..2607a24d0e6 100644 --- a/Resources/Textures/Structures/Furniture/chairs.rsi/meta.json +++ b/Resources/Textures/Structures/Furniture/chairs.rsi/meta.json @@ -106,6 +106,9 @@ { "name": "card-stool", "directions": 4 + }, + { + "name": "rainbow_chair" } ] } diff --git a/Resources/Textures/Structures/Furniture/chairs.rsi/rainbow_chair.png b/Resources/Textures/Structures/Furniture/chairs.rsi/rainbow_chair.png new file mode 100644 index 0000000000000000000000000000000000000000..ca2acb584c520c172e7c64eac1e6cc2d26884f25 GIT binary patch literal 1024 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Storage/tanks.rsi/meta.json b/Resources/Textures/Structures/Storage/tanks.rsi/meta.json index 93b557cf5a2..6765db1d7eb 100644 --- a/Resources/Textures/Structures/Storage/tanks.rsi/meta.json +++ b/Resources/Textures/Structures/Storage/tanks.rsi/meta.json @@ -116,7 +116,7 @@ "name": "watercooler-2-4" }, { - "name": "generictank-1" + "name": "rainbow_tank" } ] } diff --git a/Resources/Textures/Structures/Storage/tanks.rsi/rainbow_tank.png b/Resources/Textures/Structures/Storage/tanks.rsi/rainbow_tank.png new file mode 100644 index 0000000000000000000000000000000000000000..8b4a8733f993e70042c2019c77fd434d59ffa93b GIT binary patch literal 1996 zcmV;-2Q&DIP)Px+hDk(0R9J=Wmu+lQ=M~3)kL}oTY$uKrLP8uTAtoV&#K3q<0hOezE32v^Xsf}d zR@#fgx3y#JTZ=%Nw03QS)Co$}Y6Gbhv4*LlQpL&wW2n5ew4{)111BL)Vv-P&IB!nu zd+*r?2SWns=(KO!k*q8E-s|80{LgdF^BDdg|LdVp4L8I+q4{P z3bWVGj(3jo%F{l`waU(et?CZ^mE9GHf=L9!na$?yJyP~$8QP-`A{fLFbdbvr5OJS? zJMhDO5nkK0oc7*MFe|v##T&oc#{Q3wvu&#nic)3g?q-EqCE*ctqUb!aYd*c`Nw^^j z!Tdm{?-LM=$7$ALU{i^YS%FnSx*6RR0=I?c$ONt7C;-A;cn=z5Xxv0274G|7Cp68N)IsmM(OyNMm| z9>rhcOl0l0&>D`i`B^U&l^I<6dWbjcuQ7oTb>^X?VaLF2Dxgbll4~kM9OJ}f9urc` zNa(YN6VTW>LU1gWSnWlrG!0Eq_u^U(9J!c;@7mo=TWE}zKUm5ywqD}X^H&+cAlx*9 zAzx5aw}!*}PoRkhXH^<;=|QkQoB*H4hCkoVo-<+m48f)d1l%w*LEsS& zfyZ+oMG;t@Nep2agSi1G=YtV`v-L7*J{wxH)vPRhei6-w!W8}J`@|&=9l^kgh+^*J zk4f*J|Dql!VB>-edH00{>^T#r;pzZep7XN$u}Vf`H3a?Pc@zyAp7RRKgyU_j-od(p>Vl>W1KMOXmpR^&)%EDpIT zgvR33R%deTWG_vjF;JiZ;}{InMoVx6yFZoo#sMT0rJyF0&+EH!`aI~kcx%TYe*F3y zyz|Rf5zLGPyNPym;aRngct6Ml-@1)H3fU{SaJ~L@;^Bsbow}MX;J}HnDl03KmsWac{M~h) z-jvVLhA#frG{7(h15?v2N+Cbv3= z@K?~$7$LQwDA{TTRxW>V4EM6-e0lIgtm%bl12Ft`bHesGD4E`d(?_ua9pSBgK?&3XY^OW=F%pN1hjw8S$jq2eSMV$g^J*whtK^Eo>;me4a)piWl@UY8ta9FC zdoGhwFg4pVrq$dShsam$*t07bzTA#2qZo9B*#N!o20l-KzO)eQ3%7CfbRDJ{=U@e} zVS9mehoX3E-Ly3hBEpQ!ofy~=tas0L1_=SN#CT0FS;x?ovtT4z%_0h`u2`5?L%8Fw zSPZC~TT65ADY6|tPF_23cNC9K9ijSz;}q0nGT0i!5IZ_9G|5EAgTqWVXqpi#g1+Z-UJSp8Whl_7^ee2AP*wk({BlA=} zakUssv;E2Pm$(pWNIHo$J$#(cyGTA6+T)D?0000IqP)Px%4@pEpR9J=Wl(B0QVHn1L-z9euq=6C?ks_$UjtaKmD$$@WPC^|Vbm?Z=KSA6T z2hl}}gCOW2D1xL#+>1JiMMMw+wnA%4OHJ?lzQ-Y{cug*8ad7aS?T&-r^FGh}9%Rat zDbxQhGw6e{@{ouEOk^NuATS6J!U8d(g@`-PLI?vGq!3YHX}*!l>1$xDJfzu&Rm_11 zig}0(GEk{J=keSH7O^z2e8bVibFcE6YqO{E6tF6>sS$qaC{L<4S)TvUla=oWpT2q| z6@F^;DGu;}M*!45p5wupH(aS-{ta(2Lb*1{r#mxRnSbA9BGmv;#A$&hA4q~+rN3jd;RzY!ZPU;z+93R$B?tG#?#iO$` z?YPMUL3`l@xc20VL9t=&%eyXKs)6IKxa8Zv;8P jk4AR|nKEU{^w0GRwOo#nD*;S}00000NkvXXu0mjfaJ>`M literal 0 HcmV?d00001 From 6192bd14319e5aba3eec7663a4c570666e67782b Mon Sep 17 00:00:00 2001 From: mkanke-real Date: Sun, 1 Mar 2026 11:39:28 +0900 Subject: [PATCH 3/7] Test Fix --- .../Graphs/Structures/structures.yml | 20 ------------------- .../Recipes/Construction/Graphs/utilities.yml | 3 --- .../Structures/Storage/tanks.rsi/meta.json | 5 ++++- 3 files changed, 4 insertions(+), 24 deletions(-) diff --git a/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/structures.yml b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/structures.yml index 837b0ed27e0..aa97a06e640 100644 --- a/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/structures.yml +++ b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/structures.yml @@ -1,7 +1,6 @@ #Steel - type: construction name: steel curb - description: A simple curb. id: SteelCurb graph: curbs startNode: start @@ -15,7 +14,6 @@ - type: construction name: steel curb corner - description: A simple curb corner. id: SteelCurbCorner graph: curbs startNode: start @@ -29,7 +27,6 @@ - type: construction name: steel curb inside corner - description: A simple curb inside corner. id: SteelCurbCornerInside graph: curbs startNode: start @@ -43,7 +40,6 @@ - type: construction name: steel curb Ubend - description: A simple curb Ubend. id: SteelCurbUbend graph: curbs startNode: start @@ -57,7 +53,6 @@ - type: construction name: steel curb square - description: A simple curb square. id: SteelCurbSquare graph: curbs startNode: start @@ -72,7 +67,6 @@ #Brass - type: construction name: brass curb - description: A rustic brass curb. id: BrassCurb graph: curbs startNode: start @@ -86,7 +80,6 @@ - type: construction name: brass curb corner - description: A rustic brass curb corner. id: BrassCurbCorner graph: curbs startNode: start @@ -100,7 +93,6 @@ - type: construction name: brass curb inside corner - description: A rustic brass inside corner. id: BrassCurbCornerInside graph: curbs startNode: start @@ -114,7 +106,6 @@ - type: construction name: brass curb Ubend - description: A rustic brass Ubend. id: BrassCurbUbend graph: curbs startNode: start @@ -128,7 +119,6 @@ - type: construction name: brass curb square - description: A rustic brass square curb. id: BrassCurbSquare graph: curbs startNode: start @@ -143,7 +133,6 @@ #Gold - type: construction name: gold curb - description: A lavish golden curb. id: GoldCurb graph: curbs startNode: start @@ -157,7 +146,6 @@ - type: construction name: gold curb corner - description: A lavish golden curb corner. id: GoldCurbCorner graph: curbs startNode: start @@ -171,7 +159,6 @@ - type: construction name: gold curb inside corner - description: A lavish golden inside corner. id: GoldCurbCornerInside graph: curbs startNode: start @@ -185,7 +172,6 @@ - type: construction name: gold curb Ubend - description: A lavish golden Ubend. id: GoldCurbUbend graph: curbs startNode: start @@ -199,7 +185,6 @@ - type: construction name: gold curb square - description: A lavish golden square curb. id: GoldCurbSquare graph: curbs startNode: start @@ -214,7 +199,6 @@ #Hydrogen - type: construction name: hydrogen metal curb - description: A exotic hydrogen metal curb. id: HydrogenCurb graph: curbs startNode: start @@ -228,7 +212,6 @@ - type: construction name: hydrogen metal curb corner - description: A exotic hydrogen metal curb corner. id: HydrogenCurbCorner graph: curbs startNode: start @@ -242,7 +225,6 @@ - type: construction name: hydrogen metal curb inside corner - description: A exotic hydrogen metal inside corner. id: HydrogenCurbCornerInside graph: curbs startNode: start @@ -256,7 +238,6 @@ - type: construction name: hydrogen metal curb Ubend - description: A exotic hydrogen metal Ubend. id: HydrogenCurbUbend graph: curbs startNode: start @@ -270,7 +251,6 @@ - type: construction name: hydrogen metal curb square - description: A exotic hydrogen metal square curb. id: HydrogenCurbSquare graph: curbs startNode: start diff --git a/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/utilities.yml b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/utilities.yml index dc292c5cca4..8b7d5a2db67 100644 --- a/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/utilities.yml +++ b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/utilities.yml @@ -1,7 +1,6 @@ - type: construction name: mail pipe id: MailPipe - description: A huge pipe segment used for constructing mail systems. graph: mailpipes startNode: start targetNode: pipe @@ -15,7 +14,6 @@ - type: construction name: mail tagger id: MailTagger - description: A pipe that tags entities for routing. graph: mailpipes startNode: start targetNode: tagger @@ -29,7 +27,6 @@ - type: construction name: mail trunk id: MailTrunk - description: A pipe trunk used as an entry point for mail systems. graph: mailpipes startNode: start targetNode: trunk diff --git a/Resources/Textures/Structures/Storage/tanks.rsi/meta.json b/Resources/Textures/Structures/Storage/tanks.rsi/meta.json index 6765db1d7eb..714c8be6e59 100644 --- a/Resources/Textures/Structures/Storage/tanks.rsi/meta.json +++ b/Resources/Textures/Structures/Storage/tanks.rsi/meta.json @@ -117,6 +117,9 @@ }, { "name": "rainbow_tank" - } + }, + { + "name": "generictank-1" + }, ] } From 770d4ee4d061ac1367d977ca728c6f75adcc3840 Mon Sep 17 00:00:00 2001 From: mkanke-real Date: Sun, 1 Mar 2026 11:46:11 +0900 Subject: [PATCH 4/7] RSIs suck --- Resources/Textures/Structures/Storage/tanks.rsi/meta.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Textures/Structures/Storage/tanks.rsi/meta.json b/Resources/Textures/Structures/Storage/tanks.rsi/meta.json index 714c8be6e59..0f972615923 100644 --- a/Resources/Textures/Structures/Storage/tanks.rsi/meta.json +++ b/Resources/Textures/Structures/Storage/tanks.rsi/meta.json @@ -120,6 +120,6 @@ }, { "name": "generictank-1" - }, + } ] } From c67ed67fcb819abf717aef07b337070e1de39a9c Mon Sep 17 00:00:00 2001 From: mkanke-real Date: Sun, 1 Mar 2026 12:08:55 +0900 Subject: [PATCH 5/7] Does this make the linter happy? --- .../_Funkystation/construction/recipes/structures.ftl | 5 +++++ .../Construction/Graphs/Structures/structures.yml | 10 +++++----- 2 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 Resources/Locale/en-US/_Funkystation/construction/recipes/structures.ftl diff --git a/Resources/Locale/en-US/_Funkystation/construction/recipes/structures.ftl b/Resources/Locale/en-US/_Funkystation/construction/recipes/structures.ftl new file mode 100644 index 00000000000..efdd3c74b61 --- /dev/null +++ b/Resources/Locale/en-US/_Funkystation/construction/recipes/structures.ftl @@ -0,0 +1,5 @@ +structures-steel-curb = steel curb +structures-steel-curb-corner = steel curb corner +structures-steel-curb-inside-corner = steel curb inside corner +structures-steel-curb-ubend = steel curb Ubend +structures-steel-curb-square = steel curb square diff --git a/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/structures.yml b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/structures.yml index aa97a06e640..8f59d7730ac 100644 --- a/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/structures.yml +++ b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/structures.yml @@ -1,6 +1,6 @@ #Steel - type: construction - name: steel curb + name: structures-steel-curb id: SteelCurb graph: curbs startNode: start @@ -13,7 +13,7 @@ state: steel_curb - type: construction - name: steel curb corner + name: structures-steel-curb-corner id: SteelCurbCorner graph: curbs startNode: start @@ -26,7 +26,7 @@ state: steel_curb_corner - type: construction - name: steel curb inside corner + name: structures-steel-curb-inside-corner id: SteelCurbCornerInside graph: curbs startNode: start @@ -39,7 +39,7 @@ state: steel_curb_inside_corner - type: construction - name: steel curb Ubend + name: structures-steel-curb-ubend id: SteelCurbUbend graph: curbs startNode: start @@ -52,7 +52,7 @@ state: steel_curb_ubend - type: construction - name: steel curb square + name: structures-steel-curb-square id: SteelCurbSquare graph: curbs startNode: start From a831eba3c4fe7a6a89ccd451c7d6675c183dc3f1 Mon Sep 17 00:00:00 2001 From: mkanke-real Date: Sun, 1 Mar 2026 12:29:38 +0900 Subject: [PATCH 6/7] Big FTLing --- .../construction/recipes/structures.ftl | 30 +++++++++++++++++++ .../Graphs/Structures/structures.yml | 30 +++++++++---------- .../Recipes/Construction/Graphs/utilities.yml | 30 +++++++------------ 3 files changed, 56 insertions(+), 34 deletions(-) diff --git a/Resources/Locale/en-US/_Funkystation/construction/recipes/structures.ftl b/Resources/Locale/en-US/_Funkystation/construction/recipes/structures.ftl index efdd3c74b61..3dfbfe94313 100644 --- a/Resources/Locale/en-US/_Funkystation/construction/recipes/structures.ftl +++ b/Resources/Locale/en-US/_Funkystation/construction/recipes/structures.ftl @@ -3,3 +3,33 @@ structures-steel-curb-corner = steel curb corner structures-steel-curb-inside-corner = steel curb inside corner structures-steel-curb-ubend = steel curb Ubend structures-steel-curb-square = steel curb square + +structures-brass-curb = brass curb +structures-brass-curb-corner = brass curb corner +structures-brass-curb-inside-corner = brass curb inside corner +structures-brass-curb-ubend = brass curb Ubend +structures-brass-curb-square = brass curb square + +structures-gold-curb = gold curb +structures-gold-curb-corner = gold curb corner +structures-gold-curb-inside-corner = gold curb inside corner +structures-gold-curb-ubend = gold curb Ubend +structures-gold-curb-square = gold curb square + +structures-hydrogen-curb = hydrogen metal curb +structures-hydrogen-curb-corner = hydrogen metal curb corner +structures-hydrogen-curb-inside-corner = hydrogen metal curb inside corner +structures-hydrogen-curb-ubend = hydrogen metal curb Ubend +structures-hydrogen-curb-square = hydrogen metal curb square + +structures-mail-pipe = mail pipe +structures-mail-tagger = mail tagger +structures-mail-trunk = mail trunk +structures-mail-router = mail router +structures-mail-router-flipped = mail router flipped +structures-mail-junction = mail junction +structures-mail-junction-flipped = mail junction flipped +structures-mail-y-junction = mail y-junction +structures-mail-bend = mail bend +structures-mail-signal-router = mail signal router +structures-mail-signal-signal-router-flipped = mail signal router flipped diff --git a/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/structures.yml b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/structures.yml index 8f59d7730ac..9e9b2333179 100644 --- a/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/structures.yml +++ b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/structures.yml @@ -66,7 +66,7 @@ #Brass - type: construction - name: brass curb + name: structures-brass-curb id: BrassCurb graph: curbs startNode: start @@ -79,7 +79,7 @@ state: brass_curb - type: construction - name: brass curb corner + name: structures-brass-corner id: BrassCurbCorner graph: curbs startNode: start @@ -92,7 +92,7 @@ state: brass_curb_corner - type: construction - name: brass curb inside corner + name: structures-brass-inside-corner id: BrassCurbCornerInside graph: curbs startNode: start @@ -105,7 +105,7 @@ state: brass_curb_inside_corner - type: construction - name: brass curb Ubend + name: structures-brass-ubend id: BrassCurbUbend graph: curbs startNode: start @@ -118,7 +118,7 @@ state: brass_curb_ubend - type: construction - name: brass curb square + name: structures-brass-square id: BrassCurbSquare graph: curbs startNode: start @@ -132,7 +132,7 @@ #Gold - type: construction - name: gold curb + name: structures-gold-curb id: GoldCurb graph: curbs startNode: start @@ -145,7 +145,7 @@ state: gold_curb - type: construction - name: gold curb corner + name: structures-gold-curb-corner id: GoldCurbCorner graph: curbs startNode: start @@ -158,7 +158,7 @@ state: gold_curb_corner - type: construction - name: gold curb inside corner + name: structures-gold-curb-inside-corner id: GoldCurbCornerInside graph: curbs startNode: start @@ -171,7 +171,7 @@ state: gold_curb_inside_corner - type: construction - name: gold curb Ubend + name: structures-gold-ubend id: GoldCurbUbend graph: curbs startNode: start @@ -184,7 +184,7 @@ state: gold_curb_ubend - type: construction - name: gold curb square + name: structures-gold-square id: GoldCurbSquare graph: curbs startNode: start @@ -198,7 +198,7 @@ #Hydrogen - type: construction - name: hydrogen metal curb + name: structures-hydrogen-curb id: HydrogenCurb graph: curbs startNode: start @@ -211,7 +211,7 @@ state: hydrogen_curb - type: construction - name: hydrogen metal curb corner + name: structures-hydrogen-curb-corner id: HydrogenCurbCorner graph: curbs startNode: start @@ -224,7 +224,7 @@ state: hydrogen_curb_corner - type: construction - name: hydrogen metal curb inside corner + name: structures-hydrogen-curb-inside-corner id: HydrogenCurbCornerInside graph: curbs startNode: start @@ -237,7 +237,7 @@ state: hydrogen_curb_inside_corner - type: construction - name: hydrogen metal curb Ubend + name: structures-hydrogen-curb-ubend id: HydrogenCurbUbend graph: curbs startNode: start @@ -250,7 +250,7 @@ state: hydrogen_curb_ubend - type: construction - name: hydrogen metal curb square + name: structures-hydrogen-curbsquare id: HydrogenCurbSquare graph: curbs startNode: start diff --git a/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/utilities.yml b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/utilities.yml index 8b7d5a2db67..05e8c337a4e 100644 --- a/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/utilities.yml +++ b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/utilities.yml @@ -1,5 +1,5 @@ - type: construction - name: mail pipe + name: structures-mail-pipe id: MailPipe graph: mailpipes startNode: start @@ -12,7 +12,7 @@ state: conpipe-s - type: construction - name: mail tagger + name: structures-mail-tagger id: MailTagger graph: mailpipes startNode: start @@ -25,7 +25,7 @@ state: conpipe-tagger - type: construction - name: mail trunk + name: structures-mail-trunk id: MailTrunk graph: mailpipes startNode: start @@ -38,9 +38,8 @@ state: conpipe-t - type: construction - name: mail router + name: structures-mail-router id: MailRouter - description: A three-way router. Entities with matching tags get routed to the side via configurable filters. graph: mailpipes startNode: start targetNode: router @@ -52,9 +51,8 @@ state: conpipe-j1s - type: construction - name: mail router flipped + name: structures-mail-router-flipped id: MailRouterFlipped - description: A three-way router. Entities with matching tags get routed to the side via configurable filters. graph: mailpipes startNode: start targetNode: routerflipped @@ -66,9 +64,8 @@ state: conpipe-j2s - type: construction - name: mail junction + name: structures-mail-junction id: MailJunction - description: A three-way junction. The arrow indicates where items exit. graph: mailpipes startNode: start targetNode: junction @@ -80,9 +77,8 @@ state: conpipe-j1 - type: construction - name: mail junction flipped + name: structures-mail-junction-flipped id: MailJunctionFlipped - description: A three-way junction. The arrow indicates where items exit. graph: mailpipes startNode: start targetNode: junctionflipped @@ -94,9 +90,8 @@ state: conpipe-j2 - type: construction - name: mail y-junction + name: structures-mail-y-junction id: MailYJunction - description: A three-way junction with another exit point. graph: mailpipes startNode: start targetNode: yJunction @@ -108,9 +103,8 @@ state: conpipe-y - type: construction - name: mail bend + name: structures-mail-bend id: MailBend - description: A tube bent at a 90 degree angle. graph: mailpipes startNode: start targetNode: bend @@ -122,9 +116,8 @@ state: conpipe-c - type: construction - name: mail signal router + name: structures-mail-signal-router id: MailSignalRouter - description: A signal-controlled three-way router. graph: mailpipes startNode: start targetNode: signal_router @@ -136,9 +129,8 @@ state: signal-router-free - type: construction - name: mail signal router flipped + name: structures-mail-signal-signal-router-flipped id: MailSignalRouterFlipped - description: A signal-controlled three-way router. graph: mailpipes startNode: start targetNode: signal_router_flipped From 8e769f7eb1a2ae7f8a9f8e2a03b656df000b34d3 Mon Sep 17 00:00:00 2001 From: mkanke-real Date: Sun, 1 Mar 2026 12:52:40 +0900 Subject: [PATCH 7/7] More linter fixes --- .../Graphs/Structures/structures.yml | 74 ++----------------- .../Recipes/Construction/Graphs/utilities.yml | 33 --------- 2 files changed, 7 insertions(+), 100 deletions(-) diff --git a/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/structures.yml b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/structures.yml index 9e9b2333179..7af8179b100 100644 --- a/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/structures.yml +++ b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/Structures/structures.yml @@ -8,9 +8,6 @@ category: construction-category-structures placementMode: SnapgridCenter objectType: Structure - icon: - sprite: _Funkystation/Structures/curbs.rsi - state: steel_curb - type: construction name: structures-steel-curb-corner @@ -21,9 +18,6 @@ category: construction-category-structures placementMode: SnapgridCenter objectType: Structure - icon: - sprite: _Funkystation/Structures/curbs.rsi - state: steel_curb_corner - type: construction name: structures-steel-curb-inside-corner @@ -34,9 +28,6 @@ category: construction-category-structures placementMode: SnapgridCenter objectType: Structure - icon: - sprite: _Funkystation/Structures/curbs.rsi - state: steel_curb_inside_corner - type: construction name: structures-steel-curb-ubend @@ -47,9 +38,6 @@ category: construction-category-structures placementMode: SnapgridCenter objectType: Structure - icon: - sprite: _Funkystation/Structures/curbs.rsi - state: steel_curb_ubend - type: construction name: structures-steel-curb-square @@ -60,9 +48,6 @@ category: construction-category-structures placementMode: SnapgridCenter objectType: Structure - icon: - sprite: _Funkystation/Structures/curbs.rsi - state: steel_curb_square #Brass - type: construction @@ -74,12 +59,9 @@ category: construction-category-structures placementMode: SnapgridCenter objectType: Structure - icon: - sprite: _Funkystation/Structures/curbs.rsi - state: brass_curb - type: construction - name: structures-brass-corner + name: structures-brass-curb-corner id: BrassCurbCorner graph: curbs startNode: start @@ -87,12 +69,9 @@ category: construction-category-structures placementMode: SnapgridCenter objectType: Structure - icon: - sprite: _Funkystation/Structures/curbs.rsi - state: brass_curb_corner - type: construction - name: structures-brass-inside-corner + name: structures-brass-curb-inside-corner id: BrassCurbCornerInside graph: curbs startNode: start @@ -100,12 +79,9 @@ category: construction-category-structures placementMode: SnapgridCenter objectType: Structure - icon: - sprite: _Funkystation/Structures/curbs.rsi - state: brass_curb_inside_corner - type: construction - name: structures-brass-ubend + name: structures-brass-curb-ubend id: BrassCurbUbend graph: curbs startNode: start @@ -113,12 +89,9 @@ category: construction-category-structures placementMode: SnapgridCenter objectType: Structure - icon: - sprite: _Funkystation/Structures/curbs.rsi - state: brass_curb_ubend - type: construction - name: structures-brass-square + name: structures-brass-curb-square id: BrassCurbSquare graph: curbs startNode: start @@ -126,9 +99,6 @@ category: construction-category-structures placementMode: SnapgridCenter objectType: Structure - icon: - sprite: _Funkystation/Structures/curbs.rsi - state: brass_curb_square #Gold - type: construction @@ -140,9 +110,6 @@ category: construction-category-structures placementMode: SnapgridCenter objectType: Structure - icon: - sprite: _Funkystation/Structures/curbs.rsi - state: gold_curb - type: construction name: structures-gold-curb-corner @@ -153,9 +120,6 @@ category: construction-category-structures placementMode: SnapgridCenter objectType: Structure - icon: - sprite: _Funkystation/Structures/curbs.rsi - state: gold_curb_corner - type: construction name: structures-gold-curb-inside-corner @@ -166,12 +130,9 @@ category: construction-category-structures placementMode: SnapgridCenter objectType: Structure - icon: - sprite: _Funkystation/Structures/curbs.rsi - state: gold_curb_inside_corner - type: construction - name: structures-gold-ubend + name: structures-gold-curb-ubend id: GoldCurbUbend graph: curbs startNode: start @@ -179,12 +140,9 @@ category: construction-category-structures placementMode: SnapgridCenter objectType: Structure - icon: - sprite: _Funkystation/Structures/curbs.rsi - state: gold_curb_ubend - type: construction - name: structures-gold-square + name: structures-gold-curb-square id: GoldCurbSquare graph: curbs startNode: start @@ -192,9 +150,6 @@ category: construction-category-structures placementMode: SnapgridCenter objectType: Structure - icon: - sprite: _Funkystation/Structures/curbs.rsi - state: gold_curb_square #Hydrogen - type: construction @@ -206,9 +161,6 @@ category: construction-category-structures placementMode: SnapgridCenter objectType: Structure - icon: - sprite: _Funkystation/Structures/curbs.rsi - state: hydrogen_curb - type: construction name: structures-hydrogen-curb-corner @@ -219,9 +171,6 @@ category: construction-category-structures placementMode: SnapgridCenter objectType: Structure - icon: - sprite: _Funkystation/Structures/curbs.rsi - state: hydrogen_curb_corner - type: construction name: structures-hydrogen-curb-inside-corner @@ -232,9 +181,6 @@ category: construction-category-structures placementMode: SnapgridCenter objectType: Structure - icon: - sprite: _Funkystation/Structures/curbs.rsi - state: hydrogen_curb_inside_corner - type: construction name: structures-hydrogen-curb-ubend @@ -245,12 +191,9 @@ category: construction-category-structures placementMode: SnapgridCenter objectType: Structure - icon: - sprite: _Funkystation/Structures/curbs.rsi - state: hydrogen_curb_ubend - type: construction - name: structures-hydrogen-curbsquare + name: structures-hydrogen-curb-square id: HydrogenCurbSquare graph: curbs startNode: start @@ -258,6 +201,3 @@ category: construction-category-structures placementMode: SnapgridCenter objectType: Structure - icon: - sprite: _Funkystation/Structures/curbs.rsi - state: hydrogen_curb_square diff --git a/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/utilities.yml b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/utilities.yml index 05e8c337a4e..fdf852246c2 100644 --- a/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/utilities.yml +++ b/Resources/Prototypes/_Funkystation/Recipes/Construction/Graphs/utilities.yml @@ -7,9 +7,6 @@ category: construction-category-utilities placementMode: SnapgridCenter canBuildInImpassable: false - icon: - sprite: _Funkystation/Structures/mailpipes.rsi - state: conpipe-s - type: construction name: structures-mail-tagger @@ -20,9 +17,6 @@ category: construction-category-utilities placementMode: SnapgridCenter canBuildInImpassable: false - icon: - sprite: _Funkystation/Structures/mailpipes.rsi - state: conpipe-tagger - type: construction name: structures-mail-trunk @@ -33,9 +27,6 @@ category: construction-category-utilities placementMode: SnapgridCenter canBuildInImpassable: false - icon: - sprite: _Funkystation/Structures/mailpipes.rsi - state: conpipe-t - type: construction name: structures-mail-router @@ -46,9 +37,6 @@ category: construction-category-utilities placementMode: SnapgridCenter canBuildInImpassable: false - icon: - sprite: _Funkystation/Structures/mailpipes.rsi - state: conpipe-j1s - type: construction name: structures-mail-router-flipped @@ -59,9 +47,6 @@ category: construction-category-utilities placementMode: SnapgridCenter canBuildInImpassable: false - icon: - sprite: _Funkystation/Structures/mailpipes.rsi - state: conpipe-j2s - type: construction name: structures-mail-junction @@ -72,9 +57,6 @@ category: construction-category-utilities placementMode: SnapgridCenter canBuildInImpassable: false - icon: - sprite: _Funkystation/Structures/mailpipes.rsi - state: conpipe-j1 - type: construction name: structures-mail-junction-flipped @@ -85,9 +67,6 @@ category: construction-category-utilities placementMode: SnapgridCenter canBuildInImpassable: false - icon: - sprite: _Funkystation/Structures/mailpipes.rsi - state: conpipe-j2 - type: construction name: structures-mail-y-junction @@ -98,9 +77,6 @@ category: construction-category-utilities placementMode: SnapgridCenter canBuildInImpassable: false - icon: - sprite: _Funkystation/Structures/mailpipes.rsi - state: conpipe-y - type: construction name: structures-mail-bend @@ -111,9 +87,6 @@ category: construction-category-utilities placementMode: SnapgridCenter canBuildInImpassable: false - icon: - sprite: _Funkystation/Structures/mailpipes.rsi - state: conpipe-c - type: construction name: structures-mail-signal-router @@ -124,9 +97,6 @@ category: construction-category-utilities placementMode: SnapgridCenter canBuildInImpassable: false - icon: - sprite: _Funkystation/Structures/mailpipes.rsi - state: signal-router-free - type: construction name: structures-mail-signal-signal-router-flipped @@ -137,6 +107,3 @@ category: construction-category-utilities placementMode: SnapgridCenter canBuildInImpassable: false - icon: - sprite: _Funkystation/Structures/mailpipes.rsi - state: signal-router-flipped-free