- type: entity
  name: wirecutter
  parent: BaseItem
  id: Wirecutter
  description: This kills the wire.
  components:
  - type: EmitSoundOnLand
    sound:
      path: /Audio/Items/wirecutter_drop.ogg
  - type: Tag
    tags:
    - PlantSampleTaker
    - Wirecutter
  - type: Sprite
    sprite: Objects/Tools/wirecutters.rsi
    layers:
    - state: cutters
      map: [ "enum.DamageStateVisualLayers.Base" ]
    - state: cutters-cutty-thingy
  - type: MeleeWeapon
    wideAnimationRotation: -90
    damage:
      types:
        Piercing: 2
    attackRate: 2 #open and close that shit on their arm like hell! because you sure aren't doing any damage with this
    soundHit:
      path: "/Audio/Items/wirecutter.ogg"
  - type: Tool
    qualities:
      - Cutting
    useSound:
      path: /Audio/Items/wirecutter.ogg
  - type: RandomSprite
    available:
      - enum.DamageStateVisualLayers.Base:
          cutters: Rainbow
  - type: Item
    sprite: Objects/Tools/wirecutters.rsi
    storedRotation: -90
  - type: ToolTileCompatible
  - type: PhysicalComposition
    materialComposition:
      Steel: 100
  - type: StaticPrice
    price: 30

- type: entity
  name: screwdriver
  parent: BaseItem
  id: Screwdriver
  description: Industrial grade torque in a small screwdriving package.
  components:
  - type: EmitSoundOnLand
    sound:
      path: /Audio/Items/screwdriver_drop.ogg
  - type: Tag
    tags:
    - Screwdriver
  - type: Sprite
    sprite: Objects/Tools/screwdriver.rsi
    layers:
      - state: screwdriver
        map: [ "enum.DamageStateVisualLayers.Base" ]
      - state: screwdriver-screwybits
  - type: Item
    sprite: Objects/Tools/screwdriver.rsi
    storedRotation: -90
  - type: MeleeWeapon
    wideAnimationRotation: -90
    attackRate: 1
    damage:
      types:
        Piercing: 6
    soundHit:
      path: "/Audio/Weapons/bladeslice.ogg"
  - type: Tool
    qualities:
      - Screwing
    useSound:
      collection: Screwdriver
  - type: RandomSprite
    available:
      - enum.DamageStateVisualLayers.Base:
          screwdriver: Rainbow
  - type: PhysicalComposition
    materialComposition:
      Steel: 100
  - type: StaticPrice
    price: 30

- type: entity
  name: wrench
  parent: BaseItem
  id: Wrench
  description: 'A common tool for assembly and disassembly. Remember: lefty latchy, righty removey.'
  components:
  - type: EmitSoundOnLand
    sound:
      path: /Audio/Items/wrench_drop.ogg
  - type: Tag
    tags:
    - Wrench
  - type: Sprite
    sprite: Objects/Tools/wrench.rsi
    state: icon
  - type: Item
    sprite: Objects/Tools/wrench.rsi
    storedSprite:
      sprite: Objects/Tools/wrench.rsi
      state: storage
  - type: MeleeWeapon
    wideAnimationRotation: 135
    attackRate: 1.5
    damage:
      types:
        Blunt: 4.5
    soundHit:
      collection: MetalThud
  - type: Tool
    qualities:
      - Anchoring
    useSound:
      path: /Audio/Items/ratchet.ogg
  - type: PhysicalComposition
    materialComposition:
      Steel: 100
  - type: StaticPrice
    price: 22
  - type: GuideHelp
    guides:
    - Construction

- type: entity
  name: multitool
  parent: BaseItem
  id: Multitool
  description: An advanced tool to copy, store, and send electrical pulses and signals through wires and machines.
  components:
  - type: EmitSoundOnLand
    sound:
      path: /Audio/Items/multitool_drop.ogg
  - type: Sprite
    sprite: _Harmony/Objects/Tools/multitool.rsi # Harmony texture replacement
    layers:
    - state: icon
    - state: green-unlit
      shader: unshaded
  - type: Item
    size: Small
  - type: Clothing
    sprite: _Harmony/Objects/Tools/multitool.rsi # Harmony texture replacement
    quickEquip: false
    slots:
    - Belt
  - type: Tool
    qualities:
      - Pulsing
  - type: NetworkConfigurator
  - type: ActivatableUI
    key: enum.NetworkConfiguratorUiKey.List
    inHandsOnly: true
  - type: UserInterface
    interfaces:
      enum.NetworkConfiguratorUiKey.List:
        type: NetworkConfiguratorBoundUserInterface
      enum.NetworkConfiguratorUiKey.Configure:
        type: NetworkConfiguratorBoundUserInterface
      enum.NetworkConfiguratorUiKey.Link:
        type: NetworkConfiguratorBoundUserInterface
  - type: Tag
    tags:
      - Multitool
      - DoorElectronicsConfigurator
  - type: PhysicalComposition
    materialComposition:
      Steel: 100
      Plastic: 100
  - type: StaticPrice
    price: 56
  - type: GuideHelp
    guides:
    - Networking
    - WirePanels
    - Airlocks
    - InspectingPower

- type: entity
  name: network configurator
  parent: BaseItem
  id: NetworkConfigurator
  description: A tool for linking devices together. Has two modes, a list mode for mass linking devices and a linking mode for advanced device linking.
  components:
    - type: EmitSoundOnLand
      sound:
        path: /Audio/Items/multitool_drop.ogg
    - type: Sprite
      sprite: Objects/Tools/network_configurator.rsi
      layers:
        - state: icon
        - state: mode-link
          map: ["enum.NetworkConfiguratorLayers.ModeLight"]
          shader: unshaded
    - type: Item
      size: Small
    - type: Clothing
      sprite: Objects/Tools/network_configurator.rsi
      quickEquip: false
      slots:
        - Belt
    - type: Appearance
    - type: GenericVisualizer
      visuals:
        enum.NetworkConfiguratorVisuals.Mode:
          enum.NetworkConfiguratorLayers.ModeLight:
            True: { state: mode-link }
            False: { state: mode-list }
    - type: NetworkConfigurator
    - type: ActivatableUI
      key: enum.NetworkConfiguratorUiKey.List
      inHandsOnly: true
    - type: Tag
      tags:
        - DoorElectronicsConfigurator
    - type: UserInterface
      interfaces:
        enum.NetworkConfiguratorUiKey.List:
          type: NetworkConfiguratorBoundUserInterface
        enum.NetworkConfiguratorUiKey.Configure:
          type: NetworkConfiguratorBoundUserInterface
        enum.NetworkConfiguratorUiKey.Link:
          type: NetworkConfiguratorBoundUserInterface
    - type: StaticPrice
      price: 56
    - type: GuideHelp
      guides:
      - Networking

#Power tools
#Later on these should switch probably switch damage when changing the tool behavior.
- type: entity
  name: power drill
  parent: BaseItem
  id: PowerDrill
  description: A simple powered hand drill.
  components:
  - type: Tag
    tags:
    - Powerdrill
  - type: Sprite
    sprite: Objects/Tools/drill.rsi
    state: drill_screw
  - type: Item
    sprite: Objects/Tools/drill.rsi
    size: Small
  - type: Tool
    qualities:
      - Screwing
    speedModifier: 1.5
    useSound: /Audio/Items/drill_use.ogg
  - type: MultipleTool
    statusShowBehavior: true
    entries:
      - behavior: Screwing
        sprite:
          sprite: Objects/Tools/drill.rsi
          state: drill_screw
        useSound:
          path: /Audio/Items/drill_use.ogg
        changeSound:
          path: /Audio/Items/change_drill.ogg
      - behavior: Anchoring
        sprite:
          sprite: Objects/Tools/drill.rsi
          state: drill_bolt
        useSound:
          path: /Audio/Items/drill_use.ogg
        changeSound:
          path: /Audio/Items/change_drill.ogg
  - type: PhysicalComposition
    materialComposition:
      Steel: 300
      Plastic: 100
  - type: StaticPrice
    price: 100
  - type: MeleeWeapon
    wideAnimationRotation: -90
    attackRate: 1.5
    damage:
      types:
        Piercing: 10
    soundHit:
      path: "/Audio/Items/drill_hit.ogg"

- type: entity
  id: RCD
  parent: [ BaseItem, BaseEngineeringContraband ]
  name: RCD
  description: The rapid construction device can be used to quickly place and remove various station structures and fixtures. Requires compressed matter to function.
  components:
  - type: RCD
    availablePrototypes:
    - WallSolid
    - FloorSteel
    - Plating
    - Catwalk
    - Grille
    - Window
    - WindowDirectional
    - WindowReinforcedDirectional
    - ReinforcedWindow
    - Airlock
    - AirlockGlass
    - Firelock
    - TubeLight
    - BulbLight
    - LVCable
    - MVCable
    - HVCable
    - CableTerminal
    - Deconstruct
  - type: LimitedCharges
    maxCharges: 30
  - type: Sprite
    sprite: Objects/Tools/rcd.rsi
    state: icon
  - type: Item
    size: Normal
  - type: Clothing
    sprite: Objects/Tools/rcd.rsi
    quickEquip: false
    slots:
    - Belt
  - type: PhysicalComposition
    materialComposition:
      Steel: 600
      Plastic: 100
  - type: StaticPrice
    price: 110
  - type: UserInterface
    interfaces:
      enum.RcdUiKey.Key:
        type: RCDMenuBoundUserInterface
  - type: ActivatableUI
    inHandsOnly: true
    key: enum.RcdUiKey.Key

# Harmony change - RPD
- type: entity
  id: RPD
  parent: RCD
  name: RPD
  description: A device used to rapidly pipe things.
  components:
  - type: RCD
    isRpd: true
    availablePrototypes:
    - PipeFourway
    - PipeStraight
    - PipeBend
    - PipeTJunction
    - OutletInjector
    - ManualValve
    - VolumetricPump
    - PressurePump
    - VentScrubber
    - PressureValve
    - DualPortVent
    - VentGas
    - VentPassive
    - MixerGas
    - Radiator
    - SignalValve
    - CanisterPort
    - FilterGas
    - Deconstruct
  - type: LimitedCharges
    maxCharges: 90
  - type: Sprite
    sprite: Objects/Tools/rpd.rsi
# End harmony


- type: entity
  id: RCDEmpty
  parent: RCD
  suffix: Empty
  components:
  - type: LimitedCharges
    lastCharges: -1

- type: entity
  id: RCDRecharging
  parent: RCD
  name: experimental RCD
  description: Cyborg-mounted Rapid Construction Device which creates compressed matter on the fly using an internal fabricator.
  suffix: AutoRecharge
  components:
  - type: LimitedCharges
    maxCharges: 20
  - type: AutoRecharge
    rechargeDuration: 10

- type: entity
  id: RCDExperimental
  parent: RCD
  suffix: Admeme
  name: experimental RCD
  description: A bluespace-enhanced rapid construction device that passively generates its own compressed matter.
  components:
  - type: AutoRecharge
    rechargeDuration: 1

- type: entity
  name: compressed matter
  parent: BaseItem
  id: RCDAmmo
  description: A cartridge of raw matter compacted by bluespace technology. Used in rapid construction devices.
  components:
  - type: RCDAmmo
  - type: Sprite
    sprite: Objects/Tools/rcd.rsi
    state: ammo
  - type: Item
    sprite: Objects/Tools/rcd.rsi
    heldPrefix: ammo
  - type: PhysicalComposition
    materialComposition:
      Steel: 100
      Plastic: 100
  - type: StaticPrice
    price: 60

- type: entity
  name: omnitool
  parent: BaseItem
  id: Omnitool
  description: A drone's best friend.
  components:
  - type: Sprite
    sprite: Objects/Tools/omnitool.rsi
    state: omnitool-screwing
  - type: Item
    sprite: Objects/Tools/omnitool.rsi
    size: Normal
  - type: Tag
    tags:
    - Multitool
  - type: Prying
    enabled: false
  - type: Tool
    qualities:
      - Screwing
    speedModifier: 1.2 # Kept for future adjustments. Currently 1.2x for balance
    useSound: /Audio/Items/drill_use.ogg
  - type: ToolTileCompatible
  - type: MultipleTool
    statusShowBehavior: true
    entries:
      - behavior: Screwing
        sprite:
          sprite: Objects/Tools/omnitool.rsi
          state: omnitool-screwing
        useSound:
          path: /Audio/Items/drill_use.ogg
        changeSound:
          path: /Audio/Items/change_drill.ogg
      - behavior: Prying
        sprite:
          sprite: Objects/Tools/omnitool.rsi
          state: omnitool-prying
        useSound:
          path: /Audio/Items/jaws_pry.ogg
        changeSound:
          path: /Audio/Items/change_drill.ogg
      - behavior: Anchoring
        sprite:
          sprite: Objects/Tools/omnitool.rsi
          state: omnitool-wrenching
        useSound:
          path: /Audio/Items/ratchet.ogg
        changeSound:
          path: /Audio/Items/change_drill.ogg
      - behavior: Cutting
        sprite:
          sprite: Objects/Tools/omnitool.rsi
          state: omnitool-snipping
        useSound:
          path: /Audio/Items/jaws_cut.ogg
        changeSound:
          path: /Audio/Items/change_drill.ogg
      - behavior: Pulsing
        sprite:
          sprite: Objects/Tools/omnitool.rsi
          state: omnitool-pulsing
        changeSound:
          path: /Audio/Items/change_drill.ogg

#Other
- type: entity
  name: shovel
  parent: BaseItem
  id: Shovel
  description: A large tool for digging and moving dirt.
  components:
  - type: Sprite
    sprite: Objects/Tools/shovel.rsi
    state: icon
  - type: MeleeWeapon
    wideAnimationRotation: 45
    damage:
      types:
        Blunt: 14
    soundHit:
      collection: MetalThud
  - type: Item
    size: Normal
    sprite: Objects/Tools/shovel.rsi
  - type: PhysicalComposition
    materialComposition:
      Steel: 100
      Wood: 50
  - type: StaticPrice
    price: 25
  - type: Shovel

- type: entity
  parent: BaseItem
  id: RollingPin
  name: rolling pin
  description: A tool used to shape and flatten dough.
  components:
  - type: Sprite
    sprite: Objects/Tools/rolling_pin.rsi
    state: icon
  - type: Item
    sprite: Objects/Tools/rolling_pin.rsi
    size: Small
    storedRotation: -45
  - type: Clothing
    sprite: Objects/Tools/rolling_pin.rsi
    quickEquip: false
    slots:
    - Belt
  - type: MeleeWeapon
    wideAnimationRotation: -135
    damage:
      types:
        Blunt: 7
    soundHit:
      collection: MetalThud
  - type: Tool
    qualities:
    - Rolling
  - type: PhysicalComposition
    materialComposition:
      Wood: 100
  - type: Tag
    tags:
    - RollingPin
  - type: Construction
    graph: WoodenRollingPin
    node: rollingpin
