# If you're looking at the rsi for this file, you'll probably be confused why
# I didn't just use an alpha for most of this stuff. Well icons don't have the
# ability to have applied colors yet in GUIs. And also inhands... -Swept

- type: entity
  id: CableStack
  abstract: true
  parent: BaseItem
  name: cable stack
  suffix: Full
  components:
  - type: Tag
    tags:
    - CableCoil
  - type: Stack
    stackType: Cable
  - type: Sprite
    sprite: Objects/Tools/cable-coils.rsi
  - type: Item
    sprite: Objects/Tools/cable-coils.rsi
    size: Small
    storedRotation: -90
  - type: CablePlacer
  - type: Clickable
  - type: StaticPrice
    price: 0
  - type: StackPrice
    price: 2.25
  - type: PhysicalComposition
    materialComposition:
      Steel: 15
  # EinsteinEngines: Change Start
  #Same as Ointment but divided by 5 and 3 because StackPrice needs to be 1
  #1 Ointment = -50 damage of those types
  #1 Cable ~= -50 (-49.8) damage of those types
  - type: Healing
    delay: 0.6
    damageContainers:
    - Silicon
    - HumanoidSilicon # DeltaV
    damage:
      types: # these are all split across multiple types
        Heat: -3.22
        Shock: -3.22
        Cold: -3.22 # DeltaV
  # EinsteinEngines: Change End
  - type: GuideHelp
    guides:
    - VoltageNetworks
    - Power
  - type: Damageable
    damageContainer: Inorganic
    damageModifierSet: Metallic
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 50
      behaviors:
      - !type:DoActsBehavior
        acts: ["Destruction"]

- type: entity
  id: CableHVStack
  parent: CableStack
  name: HV cable coil
  suffix: Full
  description: HV cables for connecting engines to heavy duty machinery, SMESes, and substations.
  components:
  - type: Stack
    stackType: CableHV
    baseLayer: base
    layerStates:
    - coilhv-10
    - coilhv-20
    - coilhv-30
  - type: Sprite
    state: coilhv-30
    layers:
    - state: coilhv-30
      map: ["base"]
  - type: Item
    heldPrefix: coilhv
  - type: CablePlacer
    cablePrototypeID: CableHV
    blockingWireType: HighVoltage
  - type: Appearance
  - type: Extractable
    grindableSolutionName: hvcable
  - type: SolutionContainerManager
    solutions:
      hvcable:
        reagents:
        - ReagentId: Iron
          Quantity: 3
        - ReagentId: Copper
          Quantity: 2
        - ReagentId: Carbon #steel-reinforced
          Quantity: 1

- type: entity
  parent: CableHVStack
  id: CableHVStack10
  suffix: 10
  components:
  - type: Sprite
    state: coilhv-10
  - type: Stack
    count: 10

- type: entity
  parent: CableHVStack
  id: CableHVStack1
  suffix: 1
  components:
  - type: Sprite
    state: coilhv-10
  - type: Stack
    count: 1

- type: entity
  parent: CableStack
  id: CableMVStack
  name: MV cable coil
  suffix: Full
  description: MV cables for connecting substations to APCs, and also powering a select few things like emitters.
  components:
  - type: Stack
    stackType: CableMV
    baseLayer: base
    layerStates:
    - coilmv-10
    - coilmv-20
    - coilmv-30
  - type: Sprite
    state: coilmv-30
    layers:
    - state: coilmv-30
      map: ["base"]
  - type: Item
    heldPrefix: coilmv
  - type: CablePlacer
    cablePrototypeID: CableMV
    blockingWireType: MediumVoltage
  - type: Appearance
  - type: Extractable
    grindableSolutionName: mvcable
  - type: SolutionContainerManager
    solutions:
      mvcable:
        reagents:
        - ReagentId: Iron
          Quantity: 3
        - ReagentId: Copper
          Quantity: 2

- type: entity
  parent: CableMVStack
  id: CableMVStack10
  suffix: 10
  components:
  - type: Sprite
    state: coilmv-10
  - type: Stack
    count: 10

- type: entity
  parent: CableMVStack
  id: CableMVStack1
  suffix: 1
  components:
  - type: Sprite
    state: coilmv-10
  - type: Stack
    count: 1

- type: entity
  parent: CableStack
  id: CableApcStack
  name: LV cable coil
  description: Low-Voltage stack of wires for connecting APCs to machines and other purposes.
  suffix: Full
  components:
  - type: Sprite
    state: coillv-30
    layers:
    - state: coillv-30
      map: ["base"]
  - type: Item
    heldPrefix: coillv
  - type: Stack
    baseLayer: base
    layerStates:
    - coillv-10
    - coillv-20
    - coillv-30
  - type: CablePlacer
    cablePrototypeID: CableApcExtension
    blockingWireType: Apc
  - type: Appearance
  - type: Extractable
    grindableSolutionName: lvcable
  - type: SolutionContainerManager
    solutions:
      lvcable:
        reagents:
        - ReagentId: Iron
          Quantity: 3
        - ReagentId: Copper
          Quantity: 2

- type: entity
  parent: CableApcStack
  id: CableApcStack10
  suffix: 10
  components:
    - type: Sprite
      state: coillv-10
    - type: Stack
      count: 10

- type: entity
  parent: CableApcStack
  id: CableApcStack1
  suffix: 1
  components:
  - type: Sprite
    state: coillv-10
  - type: Stack
    count: 1
