# SPDX-FileCopyrightText: 2023 Emisse <99158783+Emisse@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 OttoMaticode <124523848+OttoMaticode@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 deltanedas <39013340+deltanedas@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 deltanedas <@deltanedas:kde.org>
# SPDX-FileCopyrightText: 2023 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 JIPDawg <51352440+JIPDawg@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 JIPDawg <JIPDawg93@gmail.com>
# SPDX-FileCopyrightText: 2024 NULL882 <gost6865@yandex.ru>
# SPDX-FileCopyrightText: 2024 gluesniffler <159397573+gluesniffler@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  parent: BaseItem
  id: BaseMechEquipment
  abstract: true
  components:
  - type: Sprite
    sprite: Objects/Specific/Mech/mecha_equipment.rsi
  - type: Item
    sprite: Objects/Specific/Mech/mecha_equipment.rsi
    size: Ginormous
  - type: MechEquipment
  - type: GuideHelp
    guides:
    - Robotics

- type: entity
  id: MechEquipmentGrabber
  parent: [ BaseMechEquipment, IndustrialMechEquipment ] # Goobstation
  name: hydraulic clamp
  description: Gives the mech the ability to grab things and drag them around.
  components:
  - type: Sprite
    state: mecha_clamp
  - type: MechGrabber
    blacklist: # Goobstation blacklist
      tags:
      - MechUnGrabbable
      components:
      - Mech
  - type: UIFragment
    ui: !type:MechGrabberUi
  - type: ContainerContainer
    containers:
      item-container: !type:Container

- type: entity
  id: MechEquipmentGrabberSmall
  parent: BaseMechEquipment
  name: small hydraulic clamp
  description: Gives the mech the ability to grab things and drag them around.
  components:
  - type: Sprite
    state: mecha_clamp_small
  - type: MechGrabber
    blacklist: # Goobstation blacklist
      tags:
      - MechUnGrabbable
      components:
      - Mech
    maxContents: 4
    grabDelay: 3
    grabEnergyDelta: -20
  - type: UIFragment
    ui: !type:MechGrabberUi
  - type: ContainerContainer
    containers:
      item-container: !type:Container
  - type: Tag # Goobstation
    tags:
    - IndustrialMech
    - SmallMech

- type: entity
  id: MechEquipmentHorn
  parent: [ BaseMechEquipment, SpecialMechEquipment ] # Goobstation
  name: mech horn
  description: An enhanced bike horn that plays a hilarious array of sounds for the enjoyment of the crew. HONK!
  components:
  - type: Sprite
    # TODO: use own sprite
    state: mecha_honker
  - type: MechSoundboard
    sounds:
    - collection: BikeHorn
    - collection: CluwneHorn
    - collection: TrollAnimals
    - collection: TrollBeeping
    - collection: TrollEsword
  - type: UIFragment
    ui: !type:MechSoundboardUi
  - type: UseDelay
    delay: 0.5
