- type: entity
  parent: BaseMachinePowered
  id: FaxMachineBase
  name: long range fax machine
  description: Bluespace technologies on the application of bureaucracy.
  components:
  - type: Sprite
    sprite: Structures/Machines/fax_machine.rsi
    drawdepth: SmallObjects
    layers:
    - state: icon
      map: [ "enum.FaxMachineVisuals.VisualState" ]
  - type: Icon
    sprite: Structures/Machines/fax_machine.rsi
    state: icon
  - type: Appearance
  - type: Physics
    bodyType: Static
  - type: Fixtures
    fixtures:
      fix1:
        shape:
          !type:PhysShapeAabb
          bounds: "-0.25,-0.25,0.25,0.25"
        density: 25
        mask:
        - TabletopMachineMask
        layer:
        - TabletopMachineLayer
  - type: ActivatableUI
    key: enum.FaxUiKey.Key
  - type: ActivatableUIRequiresPower
  - type: UserInterface
    interfaces:
      enum.FaxUiKey.Key:
        type: FaxBoundUi
  - type: StationAiWhitelist
  - type: ApcPowerReceiver
    powerLoad: 250
  - type: Faxecute
    damage:
      types:
        Blunt: 100
  - type: FaxMachine
    paperSlot:
      insertSound: /Audio/Machines/scanning.ogg
      ejectSound: /Audio/Machines/tray_eject.ogg
      whitelist:
        components:
          - FaxableObject #used to be PaperComponent - brainfood1183
      blacklist:
        components:
          - CargoSlip
  - type: GenericVisualizer
    visuals:
      enum.PowerDeviceVisuals.Powered:
        enum.FaxMachineVisuals.VisualState:
          True: { state: idle }
          False: { state: icon }
      enum.FaxMachineVisuals.VisualState:
        enum.FaxMachineVisuals.VisualState:
          Printing: { state: printing }
          Normal: {state: idle}
  - type: ItemSlots
  - type: ContainerContainer
    containers:
      Paper: !type:ContainerSlot
  - type: DeviceNetworkRequiresPower
  - type: DeviceNetwork
    deviceNetId: Wireless
    receiveFrequencyId: Fax
    transmitFrequencyId: Fax
  - type: RequireProjectileTarget

# Special
- type: entity
  parent: FaxMachineBase
  id: FaxMachineCentcom
  name: CentComm long range fax machine
  suffix: CentCom
  components:
  - type: Sprite
    layers:
      - state: icon
        map: [ "base" ]
        color: "#bfe3ff"
  - type: FaxMachine
    name: "Central Command"
    notifyAdmins: true

- type: entity
  parent: FaxMachineBase
  id: FaxMachineSyndie
  name: syndicate long range fax machine
  suffix: Syndicate
  components:
  - type: Sprite
    layers:
      - state: icon
        map: [ "base" ]
        color: "#a3a3a3"
  - type: FaxMachine
    name: "ERR*?*%!"
    responsePings: false
    notifyAdmins: true
  - type: Emagged
    emagType: Interaction

- type: entity
  parent: FaxMachineBase
  id: FaxMachineCaptain
  name: captain long range fax machine
  suffix: NukeCodes
  components:
    - type: FaxMachine
      name: "Captain's Office"
      receiveNukeCodes: true
    - type: StealTarget
      stealGroup: FaxMachineCaptain
