# SPDX-FileCopyrightText: 2023 IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Weax <59857479+ImWeax@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 lzk <124214523+lzk228@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 ImWeax <59857479+ImWeax@users.noreply.github.com>
#
# SPDX-License-Identifier: MIT

- type: entity
  parent: BaseHandheldInstrument
  id: BaseWoodwindInstrument
  abstract: true
  components:
  - type: Tag
    tags:
    - WoodwindInstrument

- type: entity
  parent: BaseWoodwindInstrument
  id: SaxophoneInstrument
  name: saxophone
  description: An instrument. You could probably grind this into raw jazz.
  components:
  - type: Instrument
    program: 66
  - type: SwappableInstrument
    instrumentList:
      "Soprano": {64: 0}
      "Alto": {65: 0}
      "Tenor": {66: 0}
      "Baritone": {67: 0}
  - type: Sprite
    sprite: Objects/Fun/Instruments/saxophone.rsi
  - type: Extractable
    grindableSolutionName: sax
  - type: SolutionContainerManager
    solutions:
      sax:
        reagents:
          - ReagentId: Saxoite
            Quantity: 10

- type: entity
  parent: BaseWoodwindInstrument
  id: HarmonicaInstrument
  name: harmonica
  components:
  - type: Instrument
    program: 22
  - type: Sprite
    sprite: Objects/Fun/Instruments/harmonica.rsi
  - type: Item
    size: Small
    storedRotation: -90
  - type: Clothing
    quickEquip: false
    slots:
    - neck
#  - type: ActivatableUI # Goob edit
#    inHandsOnly: false # Goob edit

- type: entity
  parent: BaseWoodwindInstrument
  id: ClarinetInstrument
  name: clarinet
  description: Skweedward tintacklays.
  components:
  - type: Instrument
    program: 71
  - type: Sprite
    sprite: Objects/Fun/Instruments/clarinet.rsi

- type: entity
  parent: BaseWoodwindInstrument
  id: FluteInstrument
  name: flute
  description: Reaching new heights of being horrifyingly shrill.
  components:
  - type: Instrument
    program: 73
  - type: Sprite
    sprite: Objects/Fun/Instruments/flute.rsi

- type: entity
  parent: BaseWoodwindInstrument
  id: RecorderInstrument
  name: recorder
  description: Comes in various colors of fashionable plastic!
  components:
  - type: Instrument
    program: 74
  - type: Sprite
    sprite: Objects/Fun/Instruments/recorder.rsi

- type: entity
  parent: BaseWoodwindInstrument
  id: PanFluteInstrument
  name: pan flute
  description: Perfect for luring ancient mythical beings to dance with you.
  components:
  - type: Instrument
    program: 75
  - type: Sprite
    sprite: Objects/Fun/Instruments/panflute.rsi

#if you change this to some cringe-ass zelda reference so help me god i will shoot you dead.
- type: entity
  parent: BaseWoodwindInstrument
  id: OcarinaInstrument
  name: ocarina
  description: Good for playing lullabies.
  components:
  - type: Instrument
    program: 79
  - type: Sprite
    sprite: Objects/Fun/Instruments/ocarina.rsi
  - type: Item
    size: Small

- type: entity
  parent: BaseWoodwindInstrument
  id: BagpipeInstrument
  name: bagpipe
  description: Pairs nicely with a kilt.
  components:
  - type: Instrument
    program: 109
  - type: Sprite
    sprite: Objects/Fun/Instruments/bagpipes.rsi
  - type: Item
    size: Large
