- type: entity
  parent: AirlockRCDResistant
  id: AirlockShuttle
  suffix: Docking
  name: external airlock
  description: Necessary for connecting two space craft together.
  components:
  - type: Docking
  - type: DockingSignalControl
  - type: DeviceLinkSource
    ports:
      - DoorStatus
      - DockStatus
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          !type:PhysShapeAabb
          bounds: "-0.49,-0.49,0.49,0.49" # don't want this colliding with walls or they won't close
        density: 100
        mask:
          - FullTileMask
        layer:
          - AirlockLayer
      docking:
        shape:
          !type:PhysShapeCircle
          radius: 0.2
          position: "0,-0.5"
        hard: false
  - type: Sprite
    sprite: Structures/Doors/Airlocks/Standard/shuttle-base.rsi
    layers:
    - state: closed
      map: ["enum.DoorVisualLayers.Base"]
    - state: closed_unlit
      shader: unshaded
      sprite: Structures/Doors/Airlocks/Effects/airlock-effects-shuttle.rsi
      map: ["enum.DoorVisualLayers.BaseUnlit"]
      visible: true
    - state: welded
      sprite: Structures/Doors/Airlocks/Effects/airlock-effects-shuttle.rsi
      map: ["enum.WeldableLayers.BaseWelded"]
    - state: bolted_unlit
      shader: unshaded
      sprite: Structures/Doors/Airlocks/Effects/airlock-effects-shuttle.rsi
      map: ["enum.DoorVisualLayers.BaseBolted"]
    - state: emergency_unlit
      sprite: Structures/Doors/Airlocks/Effects/airlock-effects-shuttle.rsi
      map: ["enum.DoorVisualLayers.BaseEmergencyAccess"]
      shader: unshaded
    - state: panel_open
      sprite: Structures/Doors/Airlocks/Effects/airlock-effects.rsi
      map: ["enum.WiresVisualLayers.MaintenancePanel"]
    - state: electrified_ai
      sprite: Interface/Misc/ai_hud.rsi
      shader: unshaded
      visible: false
      map: ["enum.ElectrifiedLayers.HUD"]
    - state: electrified
      sprite: Effects/electricity.rsi
      shader: unshaded
      visible: false
      map: ["enum.ElectrifiedLayers.Sparks"]
    - state: sparks
      sprite: Structures/Doors/Airlocks/Effects/airlock-effects.rsi
      map: ["enum.DoorVisualLayers.BaseEmagging"]
      shader: unshaded
      visible: false
  - type: Wires
    layoutId: Docking
  - type: Door
    closeTimeTwo: 0.4
    openTimeTwo: 0.4
    crushDamage:
      types:
        Blunt: 15
    openSound:
      path: /Audio/Effects/docking.ogg
    closeSound:
      path: /Audio/Effects/docking.ogg
    denySound:
      path: /Audio/Machines/airlock_deny.ogg
  - type: Airtight
    noAirWhenFullyAirBlocked: false
    airBlockedDirection:
      - South
  - type: Tag
    tags:
      - ForceNoFixRotations
  - type: Construction
    graph: AirlockShuttle
    node: airlock
  - type: StaticPrice
    price: 350
  - type: Paintable
    group: null
  - type: DirectionalArrowIndicator
    arrows:
    - offset: 0, -1.5

- type: entity
  id: AirlockGlassShuttle
  parent: AirlockShuttle
  suffix: Glass, Docking
  components:
  - type: Sprite
    sprite: Structures/Doors/Airlocks/Glass/shuttle-base.rsi
  - type: Occluder
    enabled: false
  - type: Door
    occludes: false
  - type: Fixtures
    fixtures:
      fix1:
        layer:     #removed opaque from the layer, allowing lasers to pass through glass airlocks
        - GlassAirlockLayer

- type: entity
  id: AirlockShuttleAssembly
  parent: AirlockAssembly
  name: external airlock assembly
  suffix: Docking
  description: An incomplete structure necessary for connecting two space craft together.
  components:
  - type: Transform
    anchored: true
    noRot: false
  - type: Rotatable
  - type: Sprite
    sprite: Structures/Doors/Airlocks/Glass/shuttle-base.rsi
    state: closed
    snapCardinals: false
  - type: Construction
    graph: AirlockShuttle
    node: assembly

- type: entity
  id: AirlockGlassShuttleSyndicate
  parent: AirlockGlassShuttle
  components:
  - type: Sprite
    sprite: Structures/Doors/Airlocks/Glass/shuttle-syndicate.rsi

- type: entity
  parent: AirlockShuttle
  id: AirlockShuttleSyndicate
  components:
  - type: Sprite
    sprite: Structures/Doors/Airlocks/Standard/shuttle-syndicate.rsi

- type: entity
  parent: AirlockShuttle
  id: AirlockShuttleXenoborg
  name: external mechadermis airlock
  components:
  - type: Sprite
    sprite: Structures/Doors/Airlocks/Standard/shuttle-xenoborg.rsi
    layers:
    - state: closed
      map: ["enum.DoorVisualLayers.Base"]
    - state: closed_unlit
      shader: unshaded
      sprite: Structures/Doors/Airlocks/Effects/airlock-effects-shuttle-xenoborg.rsi
      map: ["enum.DoorVisualLayers.BaseUnlit"]
      visible: true
    - state: welded
      sprite: Structures/Doors/Airlocks/Effects/airlock-effects-shuttle.rsi
      map: ["enum.WeldableLayers.BaseWelded"]
    - state: bolted_unlit
      shader: unshaded
      sprite: Structures/Doors/Airlocks/Effects/airlock-effects-shuttle-xenoborg.rsi
      map: ["enum.DoorVisualLayers.BaseBolted"]
    - state: emergency_unlit
      sprite: Structures/Doors/Airlocks/Effects/airlock-effects-shuttle-xenoborg.rsi
      map: ["enum.DoorVisualLayers.BaseEmergencyAccess"]
      shader: unshaded
    - state: panel_open
      sprite: Structures/Doors/Airlocks/Effects/airlock-effects.rsi
      map: ["enum.WiresVisualLayers.MaintenancePanel"]
    - state: electrified_ai
      sprite: Interface/Misc/ai_hud.rsi
      shader: unshaded
      visible: false
      map: ["enum.ElectrifiedLayers.HUD"]
    - state: electrified
      sprite: Effects/electricity.rsi
      shader: unshaded
      visible: false
      map: ["enum.ElectrifiedLayers.Sparks"]
    - state: sparks
      sprite: Structures/Doors/Airlocks/Effects/airlock-effects.rsi
      map: ["enum.DoorVisualLayers.BaseEmagging"]
      shader: unshaded
      visible: false
