# SPDX-FileCopyrightText: 2021 SETh lafuente <cetaciocascarudo@gmail.com>
# SPDX-FileCopyrightText: 2021 SethLafuente <84478872+SethLafuente@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 Swept <sweptwastaken@protonmail.com>
# SPDX-FileCopyrightText: 2021 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Delete69 <95458399+Delete69@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Lamrr <96937466+Lamrr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 TemporalOroboros <TemporalOroboros@gmail.com>
# SPDX-FileCopyrightText: 2023 Ubaser <134914314+UbaserB@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 iacore <74560659+iacore@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 EmoGarbage404 <retron404@gmail.com>
# SPDX-FileCopyrightText: 2024 Flareguy <78941145+Flareguy@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
# SPDX-FileCopyrightText: 2024 crazybrain23 <44417085+crazybrain23@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 Killerqu00 <killerqueen1777@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Tool closet
- type: entity
  id: ClosetTool
  name: tool closet
  parent: ClosetSteelBase
  description: It's a storage unit for tools.
  components:
  - type: Appearance
  - type: EntityStorageVisuals
    stateBaseClosed: eng
    stateDoorOpen: eng_open
    stateDoorClosed: eng_tool_door

# Radiation suit closet
- type: entity
  id: ClosetRadiationSuit
  name: radiation suit closet
  parent: ClosetSteelBase
  description: "More comfortable than radiation poisioning."
  components:
  - type: Appearance
  - type: EntityStorageVisuals
    stateBaseClosed: eng
    stateDoorOpen: eng_open
    stateDoorClosed: eng_rad_door

# Emergency closet
- type: entity
  id: ClosetEmergency
  name: emergency closet
  parent: ClosetSteelBase
  description: It's a storage unit for emergency breath masks and O2 tanks.
  components:
  - type: Appearance
  - type: EntityStorageVisuals
    stateBaseClosed: emergency
    stateDoorOpen: emergency_open
    stateDoorClosed: emergency_door

# Emergency N2 closet
- type: entity
  id: ClosetEmergencyN2
  name: emergency nitrogen closet
  parent: ClosetSteelBase
  description: It's full of life-saving equipment. Assuming, that is, that you breathe nitrogen.
  components:
  - type: Appearance
  - type: EntityStorageVisuals
    stateBaseClosed: n2
    stateDoorOpen: n2_open
    stateDoorClosed: n2_door

# Fire safety closet
- type: entity
  id: ClosetFire
  name: fire-safety closet
  parent: ClosetSteelBase
  description: It's a storage unit for fire-fighting supplies.
  components:
  - type: Appearance
  - type: EntityStorageVisuals
    stateBaseClosed: fire
    stateDoorOpen: fire_open
    stateDoorClosed: fire_door

# EOD closet
- type: entity
  id: ClosetBomb
  name: EOD closet
  parent: ClosetSteelBase
  description: It's a storage unit for explosion-protective suits.
  components:
  - type: Appearance
  - type: EntityStorageVisuals
    stateBaseClosed: bomb
    stateDoorOpen: bomb_open
    stateDoorClosed: bomb_door

# Janitorial bomb suit closet
- type: entity
  id: ClosetJanitorBomb
  name: janitorial bomb suit closet
  parent: ClosetSteelBase
  description: It's a storage unit for janitorial explosion-protective suits.
  categories: [ DoNotMap ]
  components:
  - type: Appearance
  - type: EntityStorageVisuals
    stateBaseClosed: janitor_bomb
    stateDoorOpen: janitor_bomb_open
    stateDoorClosed: janitor_bomb_door

# Biohazard

# Base level 3 bio hazard closet
- type: entity
  id: ClosetL3
  parent: ClosetSteelBase
  name: level 3 biohazard gear closet
  description: It's a storage unit for level 3 biohazard gear.
  components:
  - type: Appearance
  - type: EntityStorageVisuals
    stateBaseClosed: bio
    stateDoorOpen: bio_open
    stateDoorClosed: bio_door

# Science Variant
- type: entity
  id: ClosetL3Science
  parent: ClosetL3
  components:
  - type: Appearance
  - type: EntityStorageVisuals
    stateBaseClosed: bio_sci
    stateDoorOpen: bio_sci_open
    stateDoorClosed: bio_sci_door

# Virology variant
- type: entity
  id: ClosetL3Virology
  parent: ClosetL3
  components:
  - type: Appearance
  - type: EntityStorageVisuals
    stateBaseClosed: bio_viro
    stateDoorOpen: bio_viro_open
    stateDoorClosed: bio_viro_door

# Security variant
- type: entity
  id: ClosetL3Security
  parent: ClosetL3
  components:
  - type: Appearance
  - type: EntityStorageVisuals
    stateBaseClosed: bio_sec
    stateDoorOpen: bio_sec_open
    stateDoorClosed: bio_sec_door

# Janitor variant
- type: entity
  id: ClosetL3Janitor
  parent: ClosetL3
  components:
  - type: Appearance
  - type: EntityStorageVisuals
    stateBaseClosed: bio_jan
    stateDoorOpen: bio_jan_open
    stateDoorClosed: bio_jan_door

# Maintenance closet
- type: entity
  id: ClosetMaintenance
  name: maintenance closet
  parent: ClosetSteelBase
  description: It's a storage unit.
  components:
  - type: Appearance
  - type: EntityStorageVisuals
    stateDoorOpen: generic_open
    stateDoorClosed: generic_door

# Syndicate
- type: entity
  id: LockerSyndicate
  name: armory closet
  parent: ClosetSteelBase
  description: It's a storage unit.
  components:
  - type: Appearance
  - type: EntityStorageVisuals
    stateBaseClosed: syndicate
    stateDoorOpen: syndicate_open
    stateDoorClosed: syndicate_door

# Bluespace closet
- type: entity
  id: ClosetBluespace
  name: suspicious closet
  suffix: Bluespace
  parent: ClosetMaintenance
  description: It's a storage unit... right?
  components:
    - type: ArrivalsBlacklist
    - type: BluespaceLocker
      pickLinksFromSameMap: true
      minBluespaceLinks: 1
      behaviorProperties:
        bluespaceEffectOnTeleportSource: true
      autoLinksBidirectional: true
      autoLinksUseProperties: true
      autoLinkProperties:
        bluespaceEffectOnTeleportSource: true

# Unstable bluespace closet
- type: entity
  id: ClosetBluespaceUnstable
  name: suspicious closet
  suffix: Bluespace unstable
  parent: ClosetMaintenance
  description: It's a storage unit... right?
  components:
    - type: ArrivalsBlacklist
    - type: BluespaceLocker
      pickLinksFromSameMap: true
      minBluespaceLinks: 1
      behaviorProperties:
        clearLinksDebluespaces: true
        transportEntities: false
        bluespaceEffectOnTeleportSource: true
        clearLinksEvery: 2
      autoLinksBidirectional: true
      autoLinksUseProperties: true
      usesSinceLinkClear: -1 # hacky
      autoLinkProperties:
        invalidateOneWayLinks: true
        transportEntities: false
        bluespaceEffectOnTeleportSource: true
        destroyAfterUses: 2
        destroyType: DeleteComponent