- type: entity
  parent: GasTrinaryBase
  id: GasMolarMixer
  name: molar gas mixer
  description: Very useful for mixing gases.
  placement:
    mode: AlignAtmosPipeLayers
  components:
  - type: SubFloorHide
    visibleLayers:
    - enum.SubfloorLayers.FirstLayer
  - type: Sprite
    sprite: _Moffstation/Structures/Piping/Atmospherics/gas_molar_mixer.rsi
    layers:
    - sprite: Structures/Piping/Atmospherics/pipe.rsi
      state: pipeTrinaryConnectors
      map: [ "enum.PipeVisualLayers.Pipe" ]
    - state: gasMixer
      map: [ "enum.SubfloorLayers.FirstLayer", "enabled" ]
  - type: AtmosPipeLayers
    alternativePrototypes:
      Primary: GasMolarMixer
      Secondary: GasMolarMixerAlt1
      Tertiary: GasMolarMixerAlt2
      Quaternary: GasMolarMixerAlt3
      Quinary: GasMolarMixerAlt4
  - type: Appearance
  - type: GenericVisualizer
    visuals:
      enum.FilterVisuals.Enabled:
        enabled:
          True: { state: gasMixerOn }
          False: { state: gasMixer }
  - type: PipeColorVisuals
  - type: UserInterface
    interfaces:
      enum.GasMixerUiKey.Key:
        type: GasMixerBoundUserInterface
  - type: GasMixerMolar
    enabled: false
    inletOne: inlet
    inletTwo: filter
  - type: Flippable
    mirrorEntity: GasMolarMixerFlipped
  - type: Construction
    graph: GasTrinary
    node: molarmixer
  - type: AmbientSound
    enabled: false
    volume: -9
    range: 5
    sound:
      path: /Audio/Ambience/Objects/gas_hiss.ogg
  - type: AtmosMonitoringConsoleDevice
    navMapBlip: GasFlowRegulator
  - type: GuideHelp
    guides:
    - MixingAndFiltering

- type: entity
  parent: GasMolarMixer
  id: GasMolarMixerFlipped
  name: molar gas mixer
  suffix: Flipped
  placement:
    mode: AlignAtmosPipeLayers
  components:
  - type: Sprite
    sprite: _Moffstation/Structures/Piping/Atmospherics/gas_molar_mixer.rsi
    layers:
    - sprite: Structures/Piping/Atmospherics/pipe.rsi
      state: pipeTrinaryConnectors
      map: [ "enum.PipeVisualLayers.Pipe" ]
    - state: gasMixerF
      map: [ "enum.SubfloorLayers.FirstLayer", "enabled" ]
  - type: AtmosPipeLayers
    alternativePrototypes:
      Primary: GasMolarMixerFlipped
      Secondary: GasMolarMixerFlippedAlt1
      Tertiary: GasMolarMixerFlippedAlt2
      Quaternary: GasMolarMixerFlippedAlt3
      Quinary: GasMolarMixerFlippedAlt4
  - type: Appearance
  - type: Flippable
    mirrorEntity: GasMolarMixer
  - type: GenericVisualizer
    visuals:
      enum.FilterVisuals.Enabled:
        enabled:
          True: { state: gasMixerFOn }
          False: { state: gasMixerF }
  - type: NodeContainer # Starlight START: Fix flipped variant having incorrect outlets
    nodes:
      inlet:
        !type:PipeNode
        nodeGroupID: Pipe
        pipeDirection: South
      filter:
        !type:PipeNode
        nodeGroupID: Pipe
        pipeDirection: West
      outlet:
        !type:PipeNode
        nodeGroupID: Pipe
        pipeDirection: North # Starlight END
  - type: Construction
    node: molarmixerflipped
