- type: entity
  parent: [ BaseShutter, StructureHealthDoorStrong ]
  id: BlastDoor
  name: blast door
  description: Blast-retardant AND fire-retardant!
  components:
  - type: AccessReader
    containerAccessProvider: board
  - type: Sprite
    sprite: Structures/Doors/Airlocks/Standard/airlock-blastdoor.rsi
    layers:
    - state: closed
      map: ["enum.DoorVisualLayers.Base"]
    - state: welded
      sprite: Structures/Doors/Airlocks/Effects/airlock-effects.rsi
      map: ["enum.WeldableLayers.BaseWelded"]
  - type: Door
    closeTimeOne: 0.4
    closeTimeTwo: 0.4
    openTimeOne: 0.4
    openTimeTwo: 0.4
    openingAnimationTime: 1.0
    closingAnimationTime: 1.0
    canPry: false
    crushDamage:
      types:
        Blunt: 25 # yowch
    openSound:
      path: /Audio/Machines/blastdoor.ogg
    closeSound:
      path: /Audio/Machines/blastdoor.ogg
  - type: Occluder
  - type: Appearance
  - type: RadiationBlocker
    resistance: 8
  - type: Damageable
    damageModifierSet: PlasteelStaticMod
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 350
      behaviors:
      - !type:PlaySoundBehavior
        sound:
          collection: MetalBreak
  - type: ContainerFill
    containers:
      board: [ DoorElectronics ]
  - type: Construction
    graph: BlastDoor
    node: blastdoor
    containers:
    - board
  - type: StaticPrice
    price: 500
  - type: InteractionPopup
    interactSuccessString: comp-window-knock
    messagePerceivedByOthers: comp-window-knock
    interactSuccessSound:
      path: /Audio/Effects/glass_knock.ogg
  - type: IconSmooth
    key: walls
    mode: NoSprite
  - type: PlacementReplacement
    key: blastdoors

- type: entity
  parent: BlastDoor
  id: BlastDoorOpen
  suffix: Open
  components:
  - type: Door
    state: Open
  - type: Occluder
    enabled: false
  - type: Physics
    canCollide: false
  - type: Airtight
    airBlocked: false
  - type: RadiationBlocker
    enabled: false

- type: entity
  parent: [ BaseStructureDynamic, StructureHealthDoor ]
  id: BlastDoorFrame
  name: blast door frame
  description: Blast-retardant AND fire-retardant!
  components:
  - type: Sprite
    sprite: Structures/Doors/Airlocks/Standard/airlock-blastdoor.rsi
    state: assembly
  - type: InteractionOutline
  - type: Damageable
    damageModifierSet: PlasteelStaticMod
  - type: Destructible
    thresholds:
    - trigger:
        !type:DamageTrigger
        damage: 200
      behaviors:
      - !type:PlaySoundBehavior
        sound:
          collection: MetalBreak
  - type: Physics
    bodyType: Static
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          !type:PhysShapeAabb
          bounds: "-0.45,-0.45,0.45,0.45"
        density: 55
        mask:
        - Impassable
        - HighImpassable
        layer:
        - HighImpassable
  - type: Transform
    noRot: true
  - type: Construction
    graph: BlastDoor
    node: frame1

- type: entity
  parent: BlastDoor
  id: BlastDoorXeno
  name: exodermis blast door
  description: Don't lose an arm!
  components:
  - type: Sprite
    sprite: Structures/Doors/Airlocks/Standard/exo-blastdoor.rsi
    layers:
    - state: closed
      map: ["enum.DoorVisualLayers.Base"]
    - state: welded
      sprite: Structures/Doors/Airlocks/Effects/airlock-effects.rsi
      map: ["enum.WeldableLayers.BaseWelded"]
  - type: Door
    closeTimeOne: 0.4
    closeTimeTwo: 0.7
    openTimeOne: 0.4
    openTimeTwo: 0.7
    openingAnimationTime: 1.1
    closingAnimationTime: 1.0
    canPry: false
    crushDamage:
      types:
        Blunt: 25 # yowch

- type: entity
  parent: BlastDoorXeno
  id: BlastDoorXenoOpen
  suffix: Open
  components:
  - type: Door
    state: Open
  - type: Occluder
    enabled: false
  - type: Physics
    canCollide: false
  - type: Airtight
    airBlocked: false
  - type: RadiationBlocker
    enabled: false

- type: entity
  parent: BlastDoorFrame
  id: BlastDoorXenoFrame
  name: exodermis blast door frame
  description: Blast-retardant AND fire-retardant!
  components:
  - type: Sprite
    sprite: Structures/Doors/Airlocks/Standard/exo-blastdoor.rsi
    state: assembly

- type: entity
  parent: BlastDoor
  id: BlastDoorXenoborg
  name: mechadermis blast door
  description: Don't lose a head!
  components:
  - type: Sprite
    sprite: Structures/Doors/Airlocks/Standard/airlock-blastdoor.rsi
    layers:
    - state: closed
      map: ["enum.DoorVisualLayers.Base"]
    - state: welded
      sprite: Structures/Doors/Airlocks/Effects/airlock-effects.rsi
      map: ["enum.WeldableLayers.BaseWelded"]
      visible: true
  - type: Door
    closeTimeOne: 0.4
    closeTimeTwo: 0.7
    openTimeOne: 0.4
    openTimeTwo: 0.7
    openingAnimationTime: 1.1
    closingAnimationTime: 1.0
    canPry: false
    crushDamage:
      types:
        Blunt: 25 # yowch

- type: entity
  parent: BlastDoorXenoborg
  id: BlastDoorXenoborgOpen
  suffix: Open
  components:
  - type: Door
    state: Open
  - type: Occluder
    enabled: false
  - type: Physics
    canCollide: false
  - type: Airtight
    airBlocked: false
  - type: RadiationBlocker
    enabled: false
