Organize StackPrototype with inheritance (#38412)

* In one commit like an animal

* carpet fix

* move materials, more bad commit discipline

* re-add marble

* don't also do materials in the same PR, dude

* the return of floor_tile_stacks.yml for atomizing

* resolve an old issue

* re-add det cable

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
This commit is contained in:
āda 2025-10-11 20:18:12 -05:00 committed by GitHub
parent a35c3030a6
commit 1250cb4d44
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
24 changed files with 280 additions and 240 deletions

View file

@ -61,12 +61,6 @@
icon: { sprite: /Textures/Objects/Economy/cash.rsi, state: cash }
price: 1
- type: stack
id: Credit
name: stack-credit
icon: { sprite: /Textures/Objects/Economy/cash.rsi, state: cash }
spawn: SpaceCash
- type: entity
parent: SpaceCash
id: SpaceCash10

View file

@ -76,4 +76,4 @@
unit: materials-unit-chunk
icon: { sprite: Objects/Materials/ore.rsi, state: salt }
color: "#f5e7d7"
price: 0.075
price: 0.075

View file

@ -1,5 +0,0 @@
- type: stack
id: Telecrystal
name: stack-telecrystal
icon: Objects/Specific/Syndicate/telecrystal.rsi
spawn: Telecrystal1

View file

@ -1,13 +0,0 @@
- type: stack
id: Gold
name: stack-gold
icon: { sprite: "/Textures/Objects/Materials/ingots.rsi", state: gold }
spawn: IngotGold1
maxCount: 30
- type: stack
id: Silver
name: stack-silver
icon: { sprite: "/Textures/Objects/Materials/ingots.rsi", state: silver }
spawn: IngotSilver1
maxCount: 30

View file

@ -1,111 +0,0 @@
- type: stack
id: Biomass
name: stack-biomass
icon: { sprite: /Textures/Objects/Misc/monkeycube.rsi, state: cube }
spawn: MaterialBiomass1
maxCount: 100
- type: stack
id: WoodPlank
name: stack-wood-plank
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: wood }
spawn: MaterialWoodPlank1
maxCount: 30
- type: stack
id: Cardboard
name: stack-cardboard
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: cardboard }
spawn: MaterialCardboard1
maxCount: 30
- type: stack
id: Cloth
name: stack-cloth
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: cloth }
spawn: MaterialCloth1
maxCount: 30
- type: stack
id: Durathread
name: stack-durathread
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: durathread }
spawn: MaterialDurathread1
maxCount: 30
- type: stack
id: Diamond
name: stack-diamond
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: diamond }
spawn: MaterialDiamond1
maxCount: 30
- type: stack
id: Cotton
name: stack-cotton
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: cotton }
spawn: MaterialCotton1
maxCount: 30
- type: stack
id: Pyrotton
name: stack-pyrotton
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: pyrotton }
spawn: MaterialPyrotton1
maxCount: 30
- type: stack
id: Bananium
name: stack-bananium
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: bananium }
spawn: MaterialBananium1
maxCount: 10
- type: stack
id: MeatSheets
name: stack-meat-sheet
icon: { sprite: /Textures/Objects/Materials/Sheets/meaterial.rsi, state: meat }
spawn: MaterialSheetMeat1
maxCount: 30
- type: stack
id: WebSilk
name: stack-silk
icon: { sprite: /Textures/Objects/Materials/silk.rsi, state: icon }
spawn: MaterialWebSilk1
maxCount: 50
- type: stack
id: SpaceCarpTooth
name: stack-space-carp-tooth
icon: { sprite: /Textures/Objects/Materials/Mob/carptooth.rsi, state: tooth }
spawn: MaterialToothSpaceCarp1
maxCount: 30
- type: stack
id: SharkMinnowTooth
name: stack-sharkminnow-tooth
icon: { sprite: /Textures/Objects/Materials/Mob/sharktooth.rsi, state: tooth }
spawn: MaterialToothSharkminnow1
maxCount: 30
- type: stack
id: Bones
name: stack-bones
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: bones }
spawn: MaterialBones1
maxCount: 30
- type: stack
id: Gunpowder
name: stack-gunpowder
icon: { sprite: /Textures/Objects/Misc/reagent_fillings.rsi, state: powderpile }
spawn: MaterialGunpowder
maxCount: 60
- type: stack
id: GoliathHide
name: stack-goliath-hide
icon: { sprite: /Textures/Objects/Materials/hide.rsi, state: goliath_hide }
spawn: MaterialGoliathHide1
maxCount: 30

View file

@ -1,6 +0,0 @@
- type: stack
id: MetalRod
name: stack-rods
icon: { sprite: /Textures/Objects/Materials/parts.rsi, state: rods }
spawn: PartRodMetal1
maxCount: 30

View file

@ -1,48 +1,48 @@
- type: stack
parent: BaseSheetStack
id: Glass
name: stack-glass
icon: { sprite: /Textures/Objects/Materials/Sheets/glass.rsi, state: glass }
spawn: SheetGlass1
maxCount: 30
- type: stack
parent: BaseSheetStack
id: ReinforcedGlass
name: stack-reinforced-glass
icon: { sprite: /Textures/Objects/Materials/Sheets/glass.rsi, state: rglass }
spawn: SheetRGlass1
maxCount: 30
- type: stack
parent: BaseSheetStack
id: PlasmaGlass
name: stack-plasma-glass
icon: { sprite: /Textures/Objects/Materials/Sheets/glass.rsi, state: pglass }
spawn: SheetPGlass1
maxCount: 30
- type: stack
parent: BaseSheetStack
id: ReinforcedPlasmaGlass
name: stack-reinforced-plasma-glass
icon: { sprite: /Textures/Objects/Materials/Sheets/glass.rsi, state: rpglass }
spawn: SheetRPGlass1
maxCount: 30
- type: stack
parent: BaseSheetStack
id: UraniumGlass
name: stack-uranium-glass
icon: { sprite: /Textures/Objects/Materials/Sheets/glass.rsi, state: uglass }
spawn: SheetUGlass1
maxCount: 30
- type: stack
parent: BaseSheetStack
id: ReinforcedUraniumGlass
name: stack-reinforced-uranium-glass
icon: { sprite: /Textures/Objects/Materials/Sheets/glass.rsi, state: ruglass }
spawn: SheetRUGlass1
maxCount: 30
- type: stack
parent: BaseSheetStack
id: ClockworkGlass
name: stack-clockwork-glass
icon: { sprite: /Textures/Objects/Materials/Sheets/glass.rsi, state: cglass }
spawn: SheetClockworkGlass1
maxCount: 30

View file

@ -1,20 +1,20 @@
- type: stack
parent: BaseSheetStack
id: Steel
name: stack-steel
icon: { sprite: /Textures/Objects/Materials/Sheets/metal.rsi, state: steel }
spawn: SheetSteel1
maxCount: 30
- type: stack
parent: BaseSheetStack
id: Plasteel
name: stack-plasteel
icon: { sprite: /Textures/Objects/Materials/Sheets/metal.rsi, state: plasteel }
spawn: SheetPlasteel1
maxCount: 30
- type: stack
parent: BaseSheetStack
id: Brass
name: stack-brass
icon: { sprite: /Textures/Objects/Materials/Sheets/metal.rsi, state: brass }
spawn: SheetBrass1
maxCount: 30

View file

@ -0,0 +1,13 @@
- type: stack
parent: BaseSheetStack
id: Paper
name: stack-paper
icon: { sprite: /Textures/Objects/Materials/Sheets/other.rsi, state: paper }
spawn: SheetPaper1
- type: stack
parent: BaseSheetStack
id: MeatSheets
name: stack-meat-sheet
icon: { sprite: /Textures/Objects/Materials/Sheets/meaterial.rsi, state: meat }
spawn: MaterialSheetMeat1

View file

@ -1,27 +1,20 @@
- type: stack
id: Paper
name: stack-paper
icon: { sprite: /Textures/Objects/Materials/Sheets/other.rsi, state: paper }
spawn: SheetPaper1
maxCount: 30
- type: stack
parent: BaseSheetStack
id: Plasma
name: stack-plasma
icon: { sprite: /Textures/Objects/Materials/Sheets/other.rsi, state: plasma }
spawn: SheetPlasma1
maxCount: 30
- type: stack
parent: BaseSheetStack
id: Plastic
name: stack-plastic
icon: { sprite: /Textures/Objects/Materials/Sheets/other.rsi, state: plastic }
spawn: SheetPlastic1
maxCount: 30
- type: stack
parent: BaseSheetStack
id: Uranium
name: stack-uranium
icon: { sprite: /Textures/Objects/Materials/Sheets/other.rsi, state: uranium }
spawn: SheetUranium1
maxCount: 30

View file

@ -0,0 +1,36 @@
# they're uninflated by default so they're tiny
- type: stack
parent: BaseSmallStack
id: InflatableWall
name: stack-inflatable-wall
icon: { sprite: "/Textures/Objects/Misc/inflatable_wall.rsi", state: item_wall }
spawn: InflatableWallStack1
- type: stack
id: InflatableDoor
name: stack-inflatable-door
icon: { sprite: "/Textures/Objects/Misc/inflatable_door.rsi", state: item_door }
spawn: InflatableDoorStack1
maxCount: 4 # Maybe increased to 5 to reuse the base?
# Cables
- type: stack
parent: BaseMediumStack
id: Cable
name: stack-lv-cable
icon: { sprite: "/Textures/Objects/Tools/cable-coils.rsi", state: coil-30 }
spawn: CableApcStack1
- type: stack
parent: BaseMediumStack
id: CableMV
name: stack-mv-cable
icon: { sprite: "/Textures/Objects/Tools/cable-coils.rsi", state: coilmv-30 }
spawn: CableMVStack1
- type: stack
parent: BaseMediumStack
id: CableHV
name: stack-hv-cable
icon: { sprite: "/Textures/Objects/Tools/cable-coils.rsi", state: coilhv-30 }
spawn: CableHVStack1

View file

@ -1,49 +1,51 @@
# Topical medicines
- type: stack
parent: BaseSmallStack
id: Ointment
name: stack-ointment
icon: { sprite: "/Textures/Objects/Specific/Medical/medical.rsi", state: ointment }
spawn: Ointment
maxCount: 10
- type: stack
parent: BaseSmallStack
id: AloeCream
name: stack-aloe-cream
icon: { sprite: "/Textures/Objects/Specific/Hydroponics/aloe.rsi", state: cream }
spawn: AloeCream
maxCount: 10
- type: stack
parent: BaseSmallStack
id: Gauze
name: stack-gauze
icon: { sprite: "/Textures/Objects/Specific/Medical/medical.rsi", state: gauze }
spawn: Gauze
maxCount: 10
- type: stack
parent: BaseSmallStack
id: Brutepack
name: stack-brutepack
icon: { sprite: "/Textures/Objects/Specific/Medical/medical.rsi", state: gauze }
spawn: Brutepack
maxCount: 10
- type: stack
parent: BaseSmallStack
id: Bloodpack
name: stack-bloodpack
icon: { sprite: "/Textures/Objects/Specific/Medical/medical.rsi", state: bloodpack }
spawn: Bloodpack
maxCount: 10
- type: stack
parent: BaseSmallStack
id: MedicatedSuture
name: stack-medicated-suture
icon: {sprite: "/Textures/Objects/Specific/Medical/medical.rsi", state: medicated-suture }
spawn: MedicatedSuture
maxCount: 10
- type: stack
parent: BaseSmallStack
id: RegenerativeMesh
name: stack-regenerative-mesh
icon: {sprite: "/Textures/Objects/Specific/Medical/medical.rsi", state: regenerative-mesh}
spawn: RegenerativeMesh
maxCount: 10

View file

@ -1,13 +1,13 @@
- type: stack
parent: BaseMediumStack
id: ArtifactFragment
name: stack-artifact-fragment
icon: { sprite: /Textures/Objects/Specific/Xenoarchaeology/artifact_fragments.rsi, state: martianball1 }
spawn: ArtifactFragment1
maxCount: 30
- type: stack
parent: BaseSmallStack
id: Manipulator
name: stack-micro-manipulator
icon: { sprite: /Textures/Objects/Misc/stock_parts.rsi, state: micro_mani }
spawn: MicroManipulatorStockPart
maxCount: 10

View file

@ -0,0 +1,6 @@
- type: stack
parent: BaseMediumStack
id: CableDet
name: stack-explosive-cord
icon: { sprite: "/Textures/Objects/Tools/cable-coils.rsi", state: coilex-30 }
spawn: CableDetStack1

View file

@ -1,5 +1,39 @@
# Base sizes for stacks in one convenient place
# size used by powders and smokeables
- type: stack
abstract: true
id: BaseVerySmallStack
maxCount: 5
# size used by topicals and machine parts
- type: stack
abstract: true
id: BaseSmallStack
maxCount: 10
# Default size
- type: stack
abstract: true
id: BaseMediumStack
maxCount: 30
- type: stack
abstract: true
id: BaseLargeStack
maxCount: 50
- type: stack
abstract: true
id: BaseVeryLargeStack
maxCount: 100
# size used by "sheets." Usually materials like steel, glass, or plasma
- type: stack
abstract: true
id: BaseSheetStack
maxCount: 30
# Used by tiles
- type: stack
abstract: true

View file

@ -0,0 +1,27 @@
- type: stack
parent: BaseMediumStack
id: Cloth
name: stack-cloth
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: cloth }
spawn: MaterialCloth1
- type: stack
parent: BaseMediumStack
id: Durathread
name: stack-durathread
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: durathread }
spawn: MaterialDurathread1
- type: stack
parent: BaseMediumStack
id: Cotton
name: stack-cotton
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: cotton }
spawn: MaterialCotton1
- type: stack
parent: BaseMediumStack
id: Pyrotton
name: stack-pyrotton
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: pyrotton }
spawn: MaterialPyrotton1

View file

@ -3,82 +3,77 @@
- type: stack
id: Pancake
name: stack-pancake
icon: { sprite: /Textures/Objects/Consumable/Food/Baked/misc.rsi, state: pancakes1 }
spawn: FoodBakedPancake
maxCount: 9
- type: stack
id: PancakeBb
name: stack-blueberry-pancake
icon: { sprite: /Textures/Objects/Consumable/Food/Baked/misc.rsi, state: pancakesbb1 }
spawn: FoodBakedPancakeBb
maxCount: 9
- type: stack
id: PancakeCc
name: stack-chocolate-chip-pancake
icon: { sprite: /Textures/Objects/Consumable/Food/Baked/misc.rsi, state: pancakescc1 }
spawn: FoodBakedPancakeCc
maxCount: 9
# Food Containers
- type: stack
id: PizzaBox
name: stack-pizza-box
icon: { sprite: Objects/Consumable/Food/Baked/pizza.rsi, state: box }
spawn: FoodBoxPizza
maxCount: 30
# Smokeables
- type: stack
parent: BaseVerySmallStack
id: PaperRolling
name: stack-rolling-paper
icon: { sprite: /Textures/Objects/Consumable/Smokeables/Cigarettes/paper.rsi, state: cigpaper }
spawn: PaperRolling
maxCount: 5
- type: stack
parent: BaseVerySmallStack
id: CigaretteFilter
name: stack-cigarette-filter
icon: { sprite: /Textures/Objects/Consumable/Smokeables/Cigarettes/paper.rsi, state: cigfilter }
spawn: CigaretteFilter
maxCount: 5
- type: stack
parent: BaseVerySmallStack
id: GroundTobacco
name: stack-ground-tobacco
icon: { sprite: /Textures/Objects/Misc/reagent_fillings.rsi, state: powderpile }
spawn: GroundTobacco
maxCount: 5
- type: stack
parent: BaseVerySmallStack
id: GroundCannabis
name: stack-ground-cannabis
icon: { sprite: /Textures/Objects/Misc/reagent_fillings.rsi, state: powderpile }
spawn: GroundCannabis
maxCount:
- type: stack
parent: BaseVerySmallStack
id: GroundCannabisRainbow
name: stack-ground-rainbow-cannabis
icon: { sprite: /Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi, state: powderpile_rainbow }
spawn: GroundCannabisRainbow
maxCount:
- type: stack
parent: BaseVerySmallStack
id: LeavesTobaccoDried
name: stack-dried-tobacco-leaves
icon: { sprite: /Textures/Objects/Specific/Hydroponics/tobacco.rsi, state: dried }
spawn: LeavesTobaccoDried
maxCount: 5
- type: stack
parent: BaseVerySmallStack
id: LeavesCannabisDried
name: stack-dried-cannabis-leaves
icon: { sprite: /Textures/Objects/Specific/Hydroponics/tobacco.rsi, state: dried }
spawn: LeavesCannabisDried
maxCount: 5
- type: stack
parent: BaseVerySmallStack
id: LeavesCannabisRainbowDried
name: stack-dried-rainbow-cannabis-leaves
icon: { sprite: /Textures/Objects/Specific/Hydroponics/rainbow_cannabis.rsi, state: dried }

View file

@ -0,0 +1,11 @@
- type: stack
id: Telecrystal
name: stack-telecrystal
icon: { sprite: /Textures/Objects/Specific/Syndicate/telecrystal.rsi, state: telecrystal }
spawn: Telecrystal1
- type: stack
id: Credit
name: stack-credit
icon: { sprite: /Textures/Objects/Economy/cash.rsi, state: cash }
spawn: SpaceCash

View file

@ -1,12 +0,0 @@
# they're uninflated by default so they're tiny
- type: stack
id: InflatableWall
name: stack-inflatable-wall
spawn: InflatableWallStack1
maxCount: 10
- type: stack
id: InflatableDoor
name: stack-inflatable-door
spawn: InflatableDoorStack1
maxCount: 4

View file

@ -1,69 +1,71 @@
# unrefined ore
- type: stack
parent: BaseMediumStack
id: GoldOre
name: stack-gold-ore
icon: { sprite: /Textures/Objects/Materials/ore.rsi, state: gold }
spawn: GoldOre1
maxCount: 30
- type: stack
parent: BaseMediumStack
id: DiamondOre
name: stack-rough-diamond
icon: { sprite: /Textures/Objects/Materials/ore.rsi, state: diamond }
spawn: DiamondOre1
maxCount: 30
- type: stack
parent: BaseMediumStack
id: SteelOre
name: stack-iron-ore
icon: { sprite: /Textures/Objects/Materials/ore.rsi, state: iron }
spawn: SteelOre1
maxCount: 30
- type: stack
parent: BaseMediumStack
id: PlasmaOre
name: stack-plasma-ore
icon: { sprite: /Textures/Objects/Materials/ore.rsi, state: plasma }
spawn: PlasmaOre1
maxCount: 30
- type: stack
parent: BaseMediumStack
id: SilverOre
name: stack-silver-ore
icon: { sprite: /Textures/Objects/Materials/ore.rsi, state: silver }
spawn: SilverOre1
maxCount: 30
- type: stack
parent: BaseMediumStack
id: SpaceQuartz
name: stack-space-quartz
icon: { sprite: /Textures/Objects/Materials/ore.rsi, state: spacequartz }
spawn: SpaceQuartz1
maxCount: 30
- type: stack
parent: BaseMediumStack
id: UraniumOre
name: stack-uranium-ore
icon: { sprite: /Textures/Objects/Materials/ore.rsi, state: uranium }
spawn: UraniumOre1
maxCount: 30
- type: stack
parent: BaseMediumStack
id: BananiumOre
name: stack-bananium-ore
icon: { sprite: /Textures/Objects/Materials/ore.rsi, state: bananium }
spawn: BananiumOre1
maxCount: 30
- type: stack
parent: BaseMediumStack
id: Coal
name: stack-coal
icon: { sprite: /Textures/Objects/Materials/ore.rsi, state: coal }
spawn: Coal1
maxCount: 30
- type: stack
parent: BaseMediumStack
id: SaltOre
name: stack-salt
icon: { sprite: /Textures/Objects/Materials/ore.rsi, state: salt }
spawn: Salt1
maxCount: 30

View file

@ -0,0 +1,30 @@
# Materials which come from refining ores, excluding sheets
- type: stack
parent: BaseMediumStack
id: Diamond
name: stack-diamond
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: diamond }
spawn: MaterialDiamond1
- type: stack
parent: BaseSmallStack
id: Bananium
name: stack-bananium
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: bananium }
spawn: MaterialBananium1
# Ingots
- type: stack
parent: BaseMediumStack
id: Gold
name: stack-gold
icon: { sprite: "/Textures/Objects/Materials/ingots.rsi", state: gold }
spawn: IngotGold1
- type: stack
parent: BaseMediumStack
id: Silver
name: stack-silver
icon: { sprite: "/Textures/Objects/Materials/ingots.rsi", state: silver }
spawn: IngotSilver1

View file

@ -0,0 +1,59 @@
- type: stack
parent: BaseVeryLargeStack
id: Biomass
name: stack-biomass
icon: { sprite: /Textures/Objects/Misc/monkeycube.rsi, state: cube }
spawn: MaterialBiomass1
# Stacks which come from plants
- type: stack
parent: BaseMediumStack
id: WoodPlank
name: stack-wood-plank
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: wood }
spawn: MaterialWoodPlank1
- type: stack
parent: BaseMediumStack
id: Cardboard
name: stack-cardboard
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: cardboard }
spawn: MaterialCardboard1
# Stacks which come from or might come from a creature
- type: stack
parent: BaseLargeStack
id: WebSilk
name: stack-silk
icon: { sprite: /Textures/Objects/Materials/silk.rsi, state: icon }
spawn: MaterialWebSilk1
- type: stack
parent: BaseMediumStack
id: Bones
name: stack-bones
icon: { sprite: /Textures/Objects/Materials/materials.rsi, state: bones }
spawn: MaterialBones1
- type: stack
parent: BaseMediumStack
id: SpaceCarpTooth
name: stack-space-carp-tooth
icon: { sprite: /Textures/Objects/Materials/Mob/carptooth.rsi, state: tooth }
spawn: MaterialToothSpaceCarp1
- type: stack
parent: BaseMediumStack
id: SharkMinnowTooth
name: stack-sharkminnow-tooth
icon: { sprite: /Textures/Objects/Materials/Mob/sharktooth.rsi, state: tooth }
spawn: MaterialToothSharkminnow1
- type: stack
parent: BaseMediumStack
id: GoliathHide
name: stack-goliath-hide
icon: { sprite: /Textures/Objects/Materials/hide.rsi, state: goliath_hide }
spawn: MaterialGoliathHide1

View file

@ -0,0 +1,15 @@
# Stacks which don't fit cleanly into other categories
- type: stack
parent: BaseSheetStack # Not a sheet, but spiritually similar
id: MetalRod
name: stack-rods
icon: { sprite: /Textures/Objects/Materials/parts.rsi, state: rods }
spawn: PartRodMetal1
- type: stack
parent: BaseVerySmallStack
id: Gunpowder
name: stack-gunpowder
icon: { sprite: /Textures/Objects/Misc/reagent_fillings.rsi, state: powderpile }
spawn: MaterialGunpowder

View file

@ -1,30 +0,0 @@
- type: stack
id: Cable
name: stack-lv-cable
icon: { sprite: "/Textures/Objects/Tools/cable-coils.rsi", state: coil-30 }
spawn: CableApcStack1
maxCount: 30
- type: stack
id: CableMV
name: stack-mv-cable
icon: { sprite: "/Textures/Objects/Tools/cable-coils.rsi", state: coilmv-30 }
spawn: CableMVStack1
maxCount: 30
- type: stack
id: CableHV
name: stack-hv-cable
icon: { sprite: "/Textures/Objects/Tools/cable-coils.rsi", state: coilhv-30 }
spawn: CableHVStack1
maxCount: 30
# Explosive cable below
- type: stack
id: CableDet
name: stack-explosive-cord
icon: { sprite: "/Textures/Objects/Tools/cable-coils.rsi", state: coilex-30 }
spawn: CableDetStack1
maxCount: 30