# SPDX-FileCopyrightText: 2022 Emisse <99158783+Emisse@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Interrobang01 <113810873+Interrobang01@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Mervill <mervills.email@gmail.com>
# SPDX-FileCopyrightText: 2022 Visne <39844191+Visne@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 metalgearsloth <comedian_vs_clown@hotmail.com>
# SPDX-FileCopyrightText: 2023 Lei Yunxing <lyx2020@sjtu.edu.cn>
# SPDX-FileCopyrightText: 2024 AJCM-git <60196617+AJCM-git@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Alzore <140123969+Blackern5000@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Arendian <137322659+Arendian@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 BombasterDS <115770678+BombasterDS@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Callmore <22885888+Callmore@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Ed <96445749+TheShuEd@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2024 Nairod <110078045+Nairodian@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 ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Ilya246 <ilyukarno@gmail.com>
# SPDX-FileCopyrightText: 2025 Nox <nebulousnox38@gmail.com>
# SPDX-FileCopyrightText: 2025 SX-7 <sn1.test.preria.2002@gmail.com>
# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later

- type: entity
  parent: BaseItem
  id: Holoprojector
  name: holographic sign projector
  description: A handy-dandy holographic projector that displays a janitorial sign.
  components:
  - type: Item
    storedRotation: -90
  - type: HolosignProjector
  - type: UseDelay
  - type: ContainerContainer
    containers:
      cell_slot: !type:ContainerSlot {}
  - type: PowerCellSlot
    cellSlotId: cell_slot
  - type: ItemSlots
    slots:
      cell_slot:
        name: power-cell-slot-component-slot-name-default
        startingItem: PowerCellMedium
  - type: Sprite
    sprite: Objects/Devices/Holoprojectors/custodial.rsi
    state: icon
  - type: Tag
    tags:
      - HolosignProjector
  - type: PhysicalComposition #Goobstation - Recycle update
    materialComposition:
      Plastic: 62
      Glass: 37

- type: entity
  parent: Holoprojector
  id: HoloprojectorEmpty
  suffix: Empty
  components:
  - type: ItemSlots
    slots:
      cell_slot:
        name: power-cell-slot-component-slot-name-default

- type: entity
  parent: Holoprojector
  id: HoloprojectorBorg
  suffix: borg
  name: holosign projector
  description: A modified holographic sign projector for use in custodial cyborgs. Automatically self-charges.
  components:
  - type: HolosignProjector
    chargeUse: 240
  - type: ItemSlots
    slots:
      cell_slot:
        name: power-cell-slot-component-slot-name-default
        startingItem: PowerCellMicroreactor
        disableEject: true
        swap: false

- type: entity
  parent: BaseItem # DeltaV - remove powercell requirement
  id: HolofanProjector
  name: holofan projector
  description: Stop suicidal passengers from killing everyone during atmos emergencies.
  components:
  - type: ChargeHolosignProjector # DeltaV - different implementation using charges
    signProto: HoloFan
    signComponentName: Holofan # DeltaV
    #chargeUse: 120 # DeltaV
  - type: Sprite
    sprite: Objects/Devices/Holoprojectors/atmos.rsi
    state: icon
  # Begin DeltaV Additions
  - type: Item
    storedRotation: -90
  - type: LimitedCharges
    maxCharges: 6 # same as it was on a medium cell
  - type: ContainerContainer
    containers:
      signs: !type:Container
  # End DeltaV Additions
  - type: Tag
    tags:
      - HolofanProjector
  - type: StaticPrice
    price: 80
  - type: PhysicalComposition #Goobstation - Recycle update
    materialComposition:
      Steel: 75
      Plastic: 12
      Glass: 12
  - type: GuideHelp
    guides:
    - AtmosTools
    - Fires
    - Spacing

- type: entity
  parent: HolofanProjector
  id: HolofanProjectorEmpty
  categories: [ HideSpawnMenu ] # DeltaV - this is identical to the normal one
  suffix: Empty
  #components: # DeltaV - no cell slot for empty one
  #- type: ItemSlots
  #  slots:
  #    cell_slot:
  #      name: power-cell-slot-component-slot-name-default

- type: entity
  parent: Holoprojector
  id: HoloprojectorField
  name: force field projector
  description: Creates an impassable forcefield that won't let anything through. Close proximity may or may not cause cancer.
  components:
    - type: HolosignProjector
      signProto: HolosignForcefield
      chargeUse: 120
    - type: Sprite
      sprite: Objects/Devices/Holoprojectors/field.rsi
      state: icon
    - type: Tag
      tags:
        - HolofanProjector
    - type: StaticPrice
      price: 130

- type: entity
  parent: HoloprojectorField
  id: HoloprojectorFieldEmpty
  suffix: Empty
  components:
  - type: ItemSlots
    slots:
      cell_slot:
        name: power-cell-slot-component-slot-name-default

- type: entity
  parent: Holoprojector
  id: HoloprojectorSecurity
  name: holobarrier projector
  description: Creates a solid but fragile holographic barrier.
  components:
    - type: HolosignProjector
      signProto: HolosignSecurity
      chargeUse: 90
    - type: Sprite
      sprite: Objects/Devices/Holoprojectors/security.rsi
      state: icon
    - type: Tag
      tags:
        - HolofanProjector
        - SecBeltEquip
    - type: StaticPrice
      price: 50

- type: entity
  parent: HoloprojectorSecurity
  id: HoloprojectorSecurityEmpty
  suffix: Empty
  components:
  - type: ItemSlots
    slots:
      cell_slot:
        name: power-cell-slot-component-slot-name-default
  - type: PhysicalComposition #Goobstation - Recycle update
    materialComposition:
      Steel: 75
      Plastic: 12
      Glass: 12
