- type: entity
  parent: BaseItem
  id: DoorRemoteDefault
  name: door remote
  description: A gadget which can open and bolt doors remotely.
  abstract: true
  components:
  - type: Sprite
    sprite: Objects/Devices/door_remote.rsi
  - type: Item
    storedRotation: -90
  - type: Access
  - type: DoorRemote
    options:
    - mode: OpenClose
      tooltip: &TextOpenClose door-remote-open-close-text
      icon: &IconOpenClose
        sprite: /Textures/Structures/Doors/Airlocks/Standard/basic.rsi
        state: assembly
    - mode: ToggleBolts
      tooltip: &TextToggleBolt door-remote-toggle-bolt-text
      icon: &IconToggleBolt
        sprite: /Textures/Interface/Actions/actions_ai.rsi
        state: bolt_door
    - mode: ToggleEmergencyAccess
      tooltip: &TextEmergencyAccess door-remote-emergency-access-text
      icon: &IconEmergencyAccess
        sprite: /Textures/Interface/Actions/actions_ai.rsi
        state: emergency_on
  - type: StealTarget
    stealGroup: DoorRemote
  - type: ActivatableUI
    inHandsOnly: true
    key: enum.DoorRemoteUiKey.Key
  - type: UserInterface
    interfaces:
      enum.DoorRemoteUiKey.Key:
        type: DoorRemoteBoundUserInterface

- type: entity
  parent: DoorRemoteDefault
  id: DoorRemoteCanEletrifyDoors
  abstract: true
  components:
  - type: DoorRemote
    options:
    - mode: ToggleOvercharge
      tooltip: door-remote-toggle-eletrify-text
      icon:
        sprite: /Textures/Interface/Actions/actions_ai.rsi
        state: door_overcharge_on
    - mode: OpenClose
      tooltip: *TextOpenClose
      icon: *IconOpenClose
    - mode: ToggleBolts
      tooltip: *TextToggleBolt
      icon: *IconToggleBolt
    - mode: ToggleEmergencyAccess
      tooltip: *TextEmergencyAccess
      icon: *IconEmergencyAccess

- type: entity
  parent: [DoorRemoteDefault, BaseCommandContraband]
  id: DoorRemoteCommand
  name: command door remote
  components:
  - type: Sprite
    layers:
    - state: door_remotebase
    - state: door_remotelightscolour
      color: "#e6e600"
    - state: door_remotescreencolour
      color: "#9f9f00"
  - type: Access
    groups:
    - Command
  - type: DoorRemote

- type: entity
  parent: [DoorRemoteDefault, BaseCommandContraband]
  id: DoorRemoteCustom
  name: custom door remote
  description: A gadget which can open and bolt doors remotely. This advanced variant does not have built-in access, instead inheriting the ID access of the user.
  components:
  - type: Sprite
    layers:
    - state: door_remotebase
    - state: door_remotelightscolour
      color: "#0077FF"
    - state: door_remotescreencolour
      color: "#0033EE"
  - type: Access
  - type: DoorRemote
    includeUserAccess: true

- type: entity
  parent: [DoorRemoteDefault, BaseCommandContraband]
  id: DoorRemoteSecurity
  name: security door remote
  components:
  - type: Sprite
    layers:
    - state: door_remotebase
    - state: door_remotelightscolour
      color: "#cb0000"
    - state: door_remotescreencolour
      color: "#830000"
  - type: Access
    groups:
    - Security

- type: entity
  parent: [DoorRemoteDefault, BaseSecurityCommandContraband]
  id: DoorRemoteArmory
  name: armory door remote
  components:
  - type: Sprite
    layers:
    - state: door_remotebase
    - state: door_remotelightscolour
      color: "#e80000"
    - state: door_remotescreencolour
      color: "#a80000"
  - type: Access
    groups:
    - Armory

- type: entity
  parent: [DoorRemoteDefault, BaseCommandContraband]
  id: DoorRemoteService
  name: service door remote
  components:
  - type: Sprite
    layers:
    - state: door_remotebase
    - state: door_remotelightscolour
      color: "#58c800"
    - state: door_remotescreencolour
      color: "#3a7231"
  - type: Access
    groups:
    - Service

- type: entity
  parent: [DoorRemoteDefault, BaseCommandContraband]
  id: DoorRemoteResearch
  name: research door remote
  components:
  - type: Sprite
    layers:
    - state: door_remotebase
    - state: door_remotelightscolour
      color: "#a53aaa"
    - state: door_remotescreencolour
      color: "#652368"
  - type: Access
    groups:
    - Research

- type: entity
  parent: [DoorRemoteDefault, BaseCommandContraband]
  id: DoorRemoteCargo
  name: cargo door remote
  components:
  - type: Sprite
    layers:
    - state: door_remotebase
    - state: door_remotelightscolour
      color: "#b18644"
    - state: door_remotescreencolour
      color: "#5b4523"
  - type: Access
    groups:
    - Cargo

- type: entity
  parent: [DoorRemoteDefault, BaseCommandContraband]
  id: DoorRemoteMedical
  name: medical door remote
  components:
  - type: Sprite
    layers:
    - state: door_remotebase
    - state: door_remotelightscolour
      color: "#68aed6"
    - state: door_remotescreencolour
      color: "#325f7a"
  - type: Access
    groups:
    - Medical

- type: entity
  parent: [DoorRemoteDefault, BaseCommandContraband]
  id: DoorRemoteEngineering
  name: engineering door remote
  components:
  - type: Sprite
    layers:
    - state: door_remotebase
    - state: door_remotelightscolour
      color: "#ffa62b"
    - state: door_remotescreencolour
      color: "#bc5b00"
  - type: Access
    groups:
    - Engineering

- type: entity
  parent: [DoorRemoteDefault, BaseCommandContraband]
  id: DoorRemoteAll
  name: super door remote
  suffix: Admeme
  components:
  - type: Sprite
    layers:
    - state: door_remotebase
    - state: door_remotelightscolour
      color: "#2eba22"
    - state: door_remotescreencolour
      color: "#22871a"
  - type: DoorRemote
    includeUserAccess: true
  - type: Access
    groups:
    - AllAccess
    tags:
    - CentralCommand
    - NuclearOperative
    - SyndicateAgent
    - Wizard
    - Xenoborg

- type: entity
  parent: [ DoorRemoteCanEletrifyDoors, BaseXenoborgContraband ]
  id: DoorRemoteXenoborg
  name: xenoborg door remote
  components:
  - type: Sprite
    layers:
    - state: door_remotebase
    - state: door_remotelightscolour
      color: "#2eba22"
    - state: door_remotescreencolour
      color: "#22871a"
  - type: Access
    tags:
    - Xenoborg
