- type: entity
  parent: BaseItem
  id: MMI
  name: man-machine interface
  description: A machine able to facilitate communication between a biological brain and electronics, enabling crew to continue to provide value after work-related incidents.
  components:
  - type: Sprite
    sprite: Objects/Specific/Robotics/mmi.rsi
    layers:
    - state: mmi_brain
      map: ["enum.MMIVisualLayers.Brain"]
      visible: false
    - state: mmi_off
      map: ["enum.MMIVisualLayers.Base"]
  - type: Input
    context: human
  - type: MMI
  - type: BorgBrain
  - type: BlockMovement
  - type: Examiner
  - type: IntrinsicRadioReceiver
  - type: ActiveRadio
    channels:
    - Common
  - type: CollectiveMind
    channels:
    - Binary
    defaultChannel: Binary
  - type: NameIdentifier
    group: MMI
  - type: DoAfter
  - type: Actions
  - type: TypingIndicator
    proto: robot
  - type: Speech
    speechSounds: Pai
  - type: ItemSlots
    slots:
      brain_slot:
        name: positronic-brain-slot-component-slot-name-brain
        whitelist:
          components:
          - Brain
  - type: ContainerContainer
    containers:
      brain_slot: !type:ContainerSlot
  - type: Appearance
  - type: GuideHelp
    guides:
    - Cyborgs
    - Robotics
  - type: ChangeVoiceInContainer
    whitelist:
      components:
      - SecretStash
  - type: LanguageSpeaker # Einstein Engines - Language
  - type: LanguageKnowledge # Einstein Engines - Language
    speaks:
    - TauCetiBasic
    - RobotTalk
    understands:
    - TauCetiBasic
    - RobotTalk

- type: entity
  parent: MMI
  id: MMIFilled
  suffix: Filled
  components:
  - type: ItemSlots
    slots:
      brain_slot:
        name: "Brain"
        startingItem: OrganHumanBrain
        whitelist:
          components:
            - Brain

- type: entity
  parent: BaseItem
  id: PositronicBrain
  name: positronic brain
  description: An artificial brain capable of spontaneous neural activity.
  components:
    - type: Sprite
      sprite: Objects/Specific/Robotics/mmi.rsi
      layers:
      - state: posibrain
        map: ["base"]
    - type: Input
      context: human
    - type: ToggleableGhostRole
      examineTextMindPresent: positronic-brain-installed
      examineTextMindSearching: positronic-brain-still-searching
      examineTextNoMind: positronic-brain-off
      beginSearchingText: positronic-brain-searching
      roleName: positronic-brain-role-name
      roleDescription: positronic-brain-role-description
      roleRules: ghost-role-information-silicon-rules
      mindRoles:
      - MindRoleGhostRoleSilicon
      wipeVerbText: positronic-brain-wipe-device-verb-text
      wipeVerbPopup: positronic-brain-wiped-device
      stopSearchVerbText: positronic-brain-stop-searching-verb-text
      stopSearchVerbPopup: positronic-brain-stopped-searching
      job: Borg
    - type: Organ
      slotId: posbrain
    - type: Brain
    - type: BlockMovement
    - type: Examiner
    - type: BorgBrain
    - type: IntrinsicRadioReceiver
    - type: ActiveRadio
      channels:
      - Common
    - type: CollectiveMind
      channels:
      - Binary
      defaultChannel: Binary
    - type: NameIdentifier
      group: PositronicBrain
    - type: DoAfter
    - type: Actions
    - type: TypingIndicator
      proto: robot
    - type: Speech
      speechSounds: Pai
    - type: MobState
      allowedStates:
      - Alive
    - type: Appearance
    - type: Tag
      tags:
      - CannotSuicide
      - Posibrain
    - type: GenericVisualizer
      visuals:
        enum.ToggleableGhostRoleVisuals.Status:
          base:
            Off: { state: posibrain }
            Searching: { state: posibrain-searching }
            On: { state: posibrain-occupied }
    - type: GuideHelp
      guides:
      - Cyborgs
      - Robotics
    - type: ChangeVoiceInContainer
      whitelist:
        components:
        - SecretStash
    - type: LanguageSpeaker # Einstein Engines - Language
    - type: LanguageKnowledge # Einstein Engines - Language
      speaks:
      - TauCetiBasic # Added since posi brains should be able to talk to roboticists/scientists.
      - RobotTalk
      understands:
      - TauCetiBasic # Added since posi brains should be able to understand TauCetiBasic (they can in a chassis)
      - RobotTalk
