# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  parent: BaseMinorContraband
  id: ThiefBeacon
  name: thieving beacon
  description: A device that will teleport everything around it to the thief's vault at the end of the shift.
  components:
    - type: ThiefBeacon
    - type: StealArea
      range: 2 # Slightly larger than fulton beacon's random offset
    - type: Item
      size: Normal
    - type: Physics
      bodyType: Dynamic
    - type: Fixtures
      fixtures:
        fix1:
          shape:
            !type:PhysShapeAabb
            bounds: "-0.25,-0.4,0.25,0.1"
          density: 20
          mask:
            - Impassable
    - type: Foldable
      folded: true
    - type: Clickable
    - type: InteractionOutline
    - type: Appearance
    - type: GenericVisualizer
      visuals:
        enum.FoldedVisuals.State:
          foldedLayer:
            True: { state: folded_extraction }
            False: { state: extraction_point }
    - type: Sprite
      sprite: Objects/Tools/thief_beacon.rsi
      drawdepth: SmallObjects
      noRot: true
      layers:
        - state: extraction_point
          map: [ "foldedLayer" ]

- type: entity
  id: ToolboxThief
  name: undetermined thieving toolbox
  description: This is where your favorite thief's supplies lie. Try to remember which ones.
  parent: [ BaseItem, BaseSetSelector, BaseMinorContraband ] # Goobstation edit
  components:
    - type: Sprite
      sprite: Objects/Tools/Toolboxes/toolbox_thief.rsi
      state: icon
    # Goobstation - SetSelector rework - start
    #  - type: ThiefUndeterminedBackpack
    #    possibleSets:
    #    # TODO Thief pinpointer needed
    #    - ChemistrySet
    #    - ToolsSet
    #    - ChameleonSet # TODO Chameleon stump PR needed
    #    - SyndieSet
    #    - SleeperSet
    #    - CommunicatorSet
    #    - SmugglerSet
    #  - type: ActivatableUI
    #    key: enum.ThiefBackpackUIKey.Key
    #  - type: UserInterface
    #    interfaces:
    #      enum.ThiefBackpackUIKey.Key:
    #        type: ThiefBackpackBoundUserInterface
    - type: SetSelector
      possibleSets:
        - ThiefAnatomySet
        - ThiefBreacherSet
        - ThiefChameleonSet
        - ThiefSyndieSet
        - ThiefSleeperSet
        - ThiefCommunicatorSet
        - ThiefSmugglerSet
      maxSelectedSets: 2
# Goobstation - SetSelector rework - end

- type: entity
  id: SatchelThief
  name: undetermined thieving satchel
  description: This is where your favorite thief's supplies lie. Folded for your convenience.
  parent: ToolboxThief
  components:
  - type: Sprite
    sprite: Clothing/Back/Satchels/smuggler.rsi
    state: folded
  - type: Item
    storedRotation: 90
  - type: SetSelector # Goobstation
    spawnedStoragePrototype: ClothingBackpackSatchelSmugglerUnanchored
    # Goobstation
    spawnedStorageContainer: storagebase
    approveSound:
      collection: storageRustle
