# SPDX-FileCopyrightText: 2020 AJCM-git <60196617+AJCM-git@users.noreply.github.com>
# SPDX-FileCopyrightText: 2020 DamianX <DamianX@users.noreply.github.com>
# SPDX-FileCopyrightText: 2020 Hugo Laloge <hugo.laloge@gmail.com>
# SPDX-FileCopyrightText: 2020 Peter Wedder <burneddi@gmail.com>
# SPDX-FileCopyrightText: 2021 DrSmugleaf <DrSmugleaf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 Elijahrane <60792108+Elijahrane@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 Metal Gear Sloth <metalgearsloth@gmail.com>
# SPDX-FileCopyrightText: 2021 Mith-randalf <84274729+Mith-randalf@users.noreply.github.com>
# SPDX-FileCopyrightText: 2021 Swept <sweptwastaken@protonmail.com>
# SPDX-FileCopyrightText: 2021 SweptWasTaken <sweptwastaken@protonmail.com>
# SPDX-FileCopyrightText: 2022 Cheackraze <71046427+Cheackraze@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Chris V <HoofedEar@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Emisse <99158783+Emisse@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Kara <lunarautomaton6@gmail.com>
# SPDX-FileCopyrightText: 2022 Lamrr <96937466+Lamrr@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Moony <moonheart08@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Paul Ritter <ritter.paul1@googlemail.com>
# SPDX-FileCopyrightText: 2022 Peptide90 <78795277+Peptide90@users.noreply.github.com>
# SPDX-FileCopyrightText: 2022 Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
# SPDX-FileCopyrightText: 2022 metalgearsloth <comedian_vs_clown@hotmail.com>
# SPDX-FileCopyrightText: 2023 Fluffiest Floofers <thebluewulf@gmail.com>
# SPDX-FileCopyrightText: 2023 MagnusCrowe <whiterider1988@yahoo.com>
# SPDX-FileCopyrightText: 2023 Maxtone <124747282+MagnusCrowe@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Nairod <110078045+Nairodian@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 Puro <103608145+PuroSlavKing@users.noreply.github.com>
# SPDX-FileCopyrightText: 2023 lzk <124214523+lzk228@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Aidenkrz <aiden@djkraz.com>
# SPDX-FileCopyrightText: 2024 IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 Kira Bridgeton <161087999+Verbalase@users.noreply.github.com>
# SPDX-FileCopyrightText: 2024 metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
# SPDX-FileCopyrightText: 2025 GoobBot <uristmchands@proton.me>
# SPDX-FileCopyrightText: 2025 pheenty <fedorlukin2006@gmail.com>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# Base

- type: entity
  id: SpawnPointJobBase
  parent: MarkerBase
  abstract: true
  suffix: Job Spawn
  components:
  - type: SpawnPoint
    spawn_type: Job
  - type: Sprite
    sprite: Markers/jobs.rsi

- type: entity
  name: observer spawn point
  id: SpawnPointObserver
  parent: MarkerBase
  components:
  - type: Sprite
    sprite: Markers/jobs.rsi
    layers:
      - state: green
      - sprite: Mobs/Ghosts/ghost_human.rsi
        state: icon
    state: observer
  - type: SpawnPoint
    spawn_type: Observer

- type: entity
  name: latejoin spawn point
  id: SpawnPointLatejoin
  parent: SpawnPointJobBase
  components:
  - type: Sprite
    state: green
  - type: SpawnPoint
    spawn_type: LateJoin

# Cargo

- type: entity
  id: SpawnPointQuartermaster
  parent: SpawnPointJobBase
  name: quartermaster
  components:
  - type: SpawnPoint
    job_id: Quartermaster
  - type: Sprite
    layers:
      - state: green
      - state: qm


- type: entity
  id: SpawnPointCargoTechnician
  parent: SpawnPointJobBase
  name: cargotechnician
  components:
  - type: SpawnPoint
    job_id: CargoTechnician
  - type: Sprite
    layers:
      - state: green
      - state: cargo_tech

- type: entity
  id: SpawnPointSalvageSpecialist
  parent: SpawnPointJobBase
  name: salvagespecialist
  components:
  - type: SpawnPoint
    job_id: SalvageSpecialist
  - type: Sprite
    layers:
      - state: green
      - state: salvagespecialist

# Civilian

- type: entity
  id: SpawnPointPassenger
  parent: SpawnPointJobBase
  name: passenger
  components:
  - type: SpawnPoint
    job_id: Passenger
  - type: Sprite
    layers:
      - state: green
      - state: passenger

- type: entity
  id: SpawnPointTechnicalAssistant
  parent: SpawnPointJobBase
  name: technical assistant
  components:
  - type: SpawnPoint
    job_id: TechnicalAssistant
  - type: Sprite
    layers:
      - state: green
      - state: technicalassistant

- type: entity
  id: SpawnPointMedicalIntern
  parent: SpawnPointJobBase
  name: medical intern
  components:
  - type: SpawnPoint
    job_id: MedicalIntern
  - type: Sprite
    layers:
      - state: green
      - state: medicalintern

- type: entity
  id: SpawnPointSecurityCadet
  parent: SpawnPointJobBase
  name: security cadet
  components:
  - type: SpawnPoint
    job_id: SecurityCadet
  - type: Sprite
    layers:
      - state: green
      - state: security_cadet

- type: entity
  id: SpawnPointResearchAssistant
  parent: SpawnPointJobBase
  name: research assistant
  components:
  - type: SpawnPoint
    job_id: ResearchAssistant
  - type: Sprite
    layers:
      - state: green
      - state: researchassistant

- type: entity
  id: SpawnPointServiceWorker
  parent: SpawnPointJobBase
  name: service worker
  components:
  - type: SpawnPoint
    job_id: ServiceWorker
  - type: Sprite
    layers:
      - state: green
      - state: serviceworker

- type: entity
  id: SpawnPointBartender
  parent: SpawnPointJobBase
  name: bartender
  components:
  - type: SpawnPoint
    job_id: Bartender
  - type: Sprite
    layers:
      - state: green
      - state: bartender

- type: entity
  id: SpawnPointChef
  parent: SpawnPointJobBase
  name: chef
  components:
  - type: SpawnPoint
    job_id: Chef
  - type: Sprite
    layers:
      - state: green
      - state: chef

- type: entity
  id: SpawnPointBotanist
  parent: SpawnPointJobBase
  name: botanist
  components:
  - type: SpawnPoint
    job_id: Botanist
  - type: Sprite
    layers:
      - state: green
      - state: botanist

- type: entity
  id: SpawnPointClown
  parent: SpawnPointJobBase
  name: clown
  components:
  - type: SpawnPoint
    job_id: Clown
  - type: Sprite
    layers:
      - state: green
      - state: clown

- type: entity
  id: SpawnPointMime
  parent: SpawnPointJobBase
  name: mime
  components:
  - type: SpawnPoint
    job_id: Mime
  - type: Sprite
    layers:
      - state: green
      - state: mime

- type: entity
  id: SpawnPointChaplain
  parent: SpawnPointJobBase
  name: chaplain
  components:
  - type: SpawnPoint
    job_id: Chaplain
  - type: Sprite
    layers:
      - state: green
      - state: chaplain

- type: entity
  id: SpawnPointLibrarian
  parent: SpawnPointJobBase
  name: librarian
  components:
  - type: SpawnPoint
    job_id: Librarian
  - type: Sprite
    layers:
      - state: green
      - state: librarian

- type: entity
  id: SpawnPointLawyer
  parent: SpawnPointJobBase
  name: lawyer
  components:
  - type: SpawnPoint
    job_id: Lawyer
  - type: Sprite
    layers:
      - state: green
      - state: lawyer

- type: entity
  id: SpawnPointJanitor
  parent: SpawnPointJobBase
  name: janitor
  components:
  - type: SpawnPoint
    job_id: Janitor
  - type: Sprite
    layers:
      - state: green
      - state: janitor

- type: entity
  id: SpawnPointMusician
  parent: SpawnPointJobBase
  name: musician
  components:
  - type: SpawnPoint
    job_id: Musician
  - type: Sprite
    layers:
      - state: green
      - state: musician

- type: entity
  id: SpawnPointBoxer
  parent: SpawnPointJobBase
  name: boxer
  components:
  - type: SpawnPoint
    job_id: Boxer
  - type: Sprite
    layers:
      - state: green
      - state: boxer

- type: entity
  id: SpawnPointBorg
  parent: SpawnPointJobBase
  name: cyborg
  components:
  - type: SpawnPoint
    job_id: Borg
  - type: Sprite
    layers:
    - state: green
    - sprite: Mobs/Silicon/chassis.rsi
      state: robot
    - sprite: Mobs/Silicon/chassis.rsi
      state: robot_e

# Command

- type: entity
  id: SpawnPointCaptain
  parent: SpawnPointJobBase
  name: captain
  components:
  - type: SpawnPoint
    job_id: Captain
  - type: Sprite
    layers:
      - state: green
      - state: captain

- type: entity
  id: SpawnPointHeadOfPersonnel
  parent: SpawnPointJobBase
  name: headofpersonnel
  components:
  - type: SpawnPoint
    job_id: HeadOfPersonnel
  - type: Sprite
    layers:
      - state: green
      - state: hop

# Engineering

- type: entity
  id: SpawnPointChiefEngineer
  parent: SpawnPointJobBase
  name: chiefengineer
  components:
  - type: SpawnPoint
    job_id: ChiefEngineer
  - type: Sprite
    layers:
      - state: green
      - state: ce

- type: entity
  id: SpawnPointStationEngineer
  parent: SpawnPointJobBase
  name: stationengineer
  components:
  - type: SpawnPoint
    job_id: StationEngineer
  - type: Sprite
    layers:
      - state: green
      - state: engineer

- type: entity
  id: SpawnPointAtmos
  parent: SpawnPointJobBase
  name: atmospherics
  components:
  - type: SpawnPoint
    job_id: AtmosphericTechnician
  - type: Sprite
    layers:
      - state: green
      - state: atmospherics

# Medical

- type: entity
  id: SpawnPointChiefMedicalOfficer
  parent: SpawnPointJobBase
  name: chiefmedicalofficer
  components:
  - type: SpawnPoint
    job_id: ChiefMedicalOfficer
  - type: Sprite
    layers:
      - state: green
      - state: cmo

- type: entity
  id: SpawnPointMedicalDoctor
  parent: SpawnPointJobBase
  name: medicaldoctor
  components:
  - type: SpawnPoint
    job_id: MedicalDoctor
  - type: Sprite
    layers:
      - state: green
      - state: doctor

- type: entity
  id: SpawnPointParamedic
  parent: SpawnPointJobBase
  name: paramedic
  components:
  - type: SpawnPoint
    job_id: Paramedic
  - type: Sprite
    layers:
      - state: green
      - state: paramedic

- type: entity
  id: SpawnPointChemist
  parent: SpawnPointJobBase
  name: chemist
  components:
  - type: SpawnPoint
    job_id: Chemist
  - type: Sprite
    layers:
      - state: green
      - state: chemist

# Science

- type: entity
  id: SpawnPointResearchDirector
  parent: SpawnPointJobBase
  name: researchdirector
  components:
  - type: SpawnPoint
    job_id: ResearchDirector
  - type: Sprite
    layers:
      - state: green
      - state: rd

- type: entity
  id: SpawnPointScientist
  parent: SpawnPointJobBase
  name: scientist
  components:
  - type: SpawnPoint
    job_id: Scientist
  - type: Sprite
    layers:
      - state: green
      - state: scientist

# Security

- type: entity
  id: SpawnPointHeadOfSecurity
  parent: SpawnPointJobBase
  name: headofsecurity
  components:
  - type: SpawnPoint
    job_id: HeadOfSecurity
  - type: Sprite
    layers:
      - state: green
      - state: hos

- type: entity
  id: SpawnPointWarden
  parent: SpawnPointJobBase
  name: warden
  components:
  - type: SpawnPoint
    job_id: Warden
  - type: Sprite
    layers:
      - state: green
      - state: warden

- type: entity
  id: SpawnPointSecurityOfficer
  parent: SpawnPointJobBase
  name: securityofficer
  components:
  - type: SpawnPoint
    job_id: SecurityOfficer
  - type: Sprite
    layers:
      - state: green
      - state: security_officer

- type: entity
  id: SpawnPointDetective
  parent: SpawnPointJobBase
  name: detective
  components:
  - type: SpawnPoint
    job_id: Detective
  - type: Sprite
    layers:
      - state: green
      - state: detective

- type: entity
  id: SpawnPointBrigmedic
  parent: SpawnPointJobBase
  name: brigmedic
  components:
  - type: Sprite
    layers:
      - state: green
      - state: brigmedic
  - type: SpawnPoint # goob
    job_id: Brigmedic

# SPECIAL
# ERT
- type: entity
  id: SpawnPointERTLeader
  parent: SpawnPointJobBase
  name: ERTleader
  components:
  - type: SpawnPoint
    job_id: ERTLeader
  - type: Sprite
    layers:
      - state: green
      - state: ertleader

- type: entity
  id: SpawnPointERTChaplain
  parent: SpawnPointJobBase
  name: ERTchaplain
  components:
  - type: SpawnPoint
    job_id: ERTChaplain
  - type: Sprite
    layers:
      - state: green
      - state: chaplain

- type: entity
  id: SpawnPointERTEngineer
  parent: SpawnPointJobBase
  name: ERTengineer
  components:
  - type: SpawnPoint
    job_id: ERTEngineer
  - type: Sprite
    layers:
      - state: green
      - state: ertengineer

- type: entity
  id: SpawnPointERTMedical
  parent: SpawnPointJobBase
  name: ERTmedical
  components:
  - type: SpawnPoint
    job_id: ERTMedical
  - type: Sprite
    layers:
      - state: green
      - state: ertmedical

- type: entity
  id: SpawnPointERTSecurity
  parent: SpawnPointJobBase
  name: ERTsecurity
  components:
  - type: SpawnPoint
    job_id: ERTSecurity
  - type: Sprite
    layers:
      - state: green
      - state: ertsecurity

- type: entity
  id: SpawnPointERTJanitor
  parent: SpawnPointJobBase
  name: ERTjanitor
  components:
  - type: SpawnPoint
    job_id: ERTJanitor
  - type: Sprite
    layers:
      - state: green
      - state: ertjanitor

# STATION SPECIFIC

- type: entity
  id: SpawnPointReporter
  parent: SpawnPointJobBase
  name: reporter
  components:
  - type: SpawnPoint
    job_id: Reporter
  - type: Sprite
    layers:
      - state: green
      - state: reporter

- type: entity
  id: SpawnPointPsychologist
  parent: SpawnPointJobBase
  name: psychologist
  components:
  - type: SpawnPoint
    job_id: Psychologist
  - type: Sprite
    layers:
      - state: green
      - state: psychologist

- type: entity
  id: SpawnPointZookeeper
  parent: SpawnPointJobBase
  name: zookeeper
  components:
  - type: SpawnPoint
    job_id: Zookeeper
  - type: Sprite
    layers:
      - state: green
      - state: zookeeper
