---
navigation:
  parent: example-setups/example-setups-index.md
  title: Подсеть "труб" для предметов/жидкостей
  icon: storage_bus
---

# Подсеть "труб" для предметов/жидкостей

Простой способ эмуляции трубы для предметов и/или жидкостей с помощью [устройств](../ae2-mechanics/devices.md) AE2, полезный для, ну, всего, для чего вы использовали бы трубы для предметов или жидкостей.
Это включает в себя возврат результата крафта в <ItemLink id="pattern_provider" />.

Обычно существует два различных метода достижения этой цели:

## Шина импорта -> Шина хранения

<GameScene zoom="6" background="transparent">
  <ImportStructure src="../assets/assemblies/import_storage_pipe.snbt" />

<BoxAnnotation color="#dddddd" min="3.7 0 0" max="4 1 1">
        (1) Шина импорта: Может быть отфильтрована.
  </BoxAnnotation>

<BoxAnnotation color="#dddddd" min="1 0 0" max="1.3 1 1">
        (2) Шина хранения: Может быть отфильтрована. Эта (и другие шины хранения, которые вы хотите использовать в качестве назначения)
        должна быть единственным хранилищем в сети.
  </BoxAnnotation>

<DiamondAnnotation pos="4.5 0.5 0.5" color="#00ff00">
        Источник
    </DiamondAnnotation>

<DiamondAnnotation pos="0.5 0.5 0.5" color="#00ff00">
        Назначение
    </DiamondAnnotation>

  <IsometricCamera yaw="195" pitch="30" />
</GameScene>

<ItemLink id="import_bus" /> (1) на исходном инвентаре импортирует предметы или жидкость и пытается сохранить их в [сетевом хранилище](../ae2-mechanics/import-export-storage.md).
Поскольку единственное хранилище в сети — это <ItemLink id="storage_bus" /> (2) (поэтому это подсеть, а не ваша основная сеть), предметы или жидкость
помещаются в инвентарь назначения, тем самым переносясь. Энергия подается через <ItemLink id="quartz_fiber" />.
И шина импорта, и шина хранения могут быть отфильтрованы, но установка будет передавать все, к чему у нее есть доступ, если фильтры не применены.
Эта установка также работает с несколькими шинами импорта и несколькими шинами хранения.

## Шина хранения -> Шина экспорта

<GameScene zoom="6" background="transparent">
  <ImportStructure src="../assets/assemblies/storage_export_pipe.snbt" />

<BoxAnnotation color="#dddddd" min="3.7 0 0" max="4 1 1">
        (1) Шина хранения: Может быть отфильтрована. Эта (и другие шины хранения, которые вы хотите использовать в качестве источника)
        должна быть единственным хранилищем в сети.
  </BoxAnnotation>

<BoxAnnotation color="#dddddd" min="1 0 0" max="1.3 1 1">
        (2) Шина экспорта: Должна быть отфильтрована.
  </BoxAnnotation>

<DiamondAnnotation pos="4.5 0.5 0.5" color="#00ff00">
        Источник
    </DiamondAnnotation>

<DiamondAnnotation pos="0.5 0.5 0.5" color="#00ff00">
        Назначение
    </DiamondAnnotation>

  <IsometricCamera yaw="195" pitch="30" />
</GameScene>

<ItemLink id="export_bus" /> на инвентаре назначения пытается вытянуть предметы по своему фильтру из [сетевого хранилища](../ae2-mechanics/import-export-storage.md).
Поскольку единственное хранилище в сети — это <ItemLink id="storage_bus" /> (поэтому это подсеть, а не ваша основная сеть), предметы или жидкость
вытягиваются из исходного инвентаря, тем самым переносясь. Энергия подается через <ItemLink id="quartz_fiber" />.
Поскольку шины экспорта должны быть отфильтрованы для работы, эта установка работает только в том случае, если вы фильтруете шину экспорта.
Эта установка также работает с несколькими шинами хранения и несколькими шинами экспорта.

## Настройка, которая не работает (Шина импорта -> Шина экспорта)

<GameScene zoom="6" background="transparent">
  <ImportStructure src="../assets/assemblies/import_export_pipe.snbt" />

<BoxAnnotation color="#dd3333" min="3.7 0 0" max="4 1 1">
        Шина импорта: Поскольку у сети нет хранилища, ей некуда импортировать.
  </BoxAnnotation>

<BoxAnnotation color="#dd3333" min="1 0 0" max="1.3 1 1">
        (2) Шина экспорта: Поскольку у сети нет хранилища, ей нечего экспортировать.
  </BoxAnnotation>

<DiamondAnnotation pos="4.5 0.5 0.5" color="#ff0000">
        Источник
    </DiamondAnnotation>

<DiamondAnnotation pos="0.5 0.5 0.5" color="#ff0000">
        Назначение
    </DiamondAnnotation>

  <IsometricCamera yaw="195" pitch="30" />
</GameScene>

Установка, состоящая только из шины импорта и шины экспорта, не будет работать. Шина импорта будет пытаться вытянуть предметы или жидкость из исходного инвентаря
и сохранить их в сетевом хранилище. Шина экспорта будет пытаться вытянуть из сетевого хранилища
и поместить предметы или жидкость в инвентарь назначения. Однако, поскольку у этой сети **нет хранилища**,
шина импорта не может импортировать, а шина экспорта не может экспортировать, поэтому ничего не происходит.

## Ввод и вывод через 1 грань

Предположим, у вас есть машина, которая может принимать ввод и выводить свой результат через 1 грань. (Например, <ItemLink id="charger" />)
Вы можете как заталкивать ингредиенты, так и вытягивать результат, комбинируя 2 метода подсети труб:

<GameScene zoom="6" background="transparent">
  <ImportStructure src="../assets/assemblies/import_storage_export_pipe.snbt" />

<BoxAnnotation color="#dddddd" min="4 1 1" max="5 1.3 2">
        (1) Шина импорта: Может быть отфильтрована.
  </BoxAnnotation>

<BoxAnnotation color="#dddddd" min="2 1 1" max="3 1.3 2">
        (2) Шина хранения: Может быть отфильтрована. Эта (и другие шины хранения, которые вы хотите использовать для заталкивания и вытягивания предметов)
        должна быть единственным хранилищем в сети.
  </BoxAnnotation>

<BoxAnnotation color="#dddddd" min="2 0 1" max="3 1 2">
        (3) Объект, в который вы хотите заталкивать и из которого вытягивать: В данном случае Зарядное устройство.
  </BoxAnnotation>

<BoxAnnotation color="#dddddd" min="0 1 1" max="1 1.3 2">
        (4) Шина экспорта: Должна быть отфильтрована.
  </BoxAnnotation>

<DiamondAnnotation pos="4.5 0.5 1.5" color="#00ff00">
        Источник
    </DiamondAnnotation>

<DiamondAnnotation pos="0.5 0.5 1.5" color="#00ff00">
        Назначение
    </DiamondAnnotation>

  <IsometricCamera yaw="195" pitch="30" />
</GameScene>

## Интерфейсы

Оказывается, существуют [устройства](../ae2-mechanics/devices.md) помимо шин импорта и шин экспорта, которые заталкивают предметы в
и вытягивают предметы из [сетевого хранилища](../ae2-mechanics/import-export-storage.md)!
Здесь важен <ItemLink id="interface" />. Если вставляется предмет, который интерфейс не настроен хранить, интерфейс
протолкнет его в сетевое хранилище, что мы можем использовать аналогично трубе шина импорта -> шина хранения. Настройка интерфейса на
хранение какого-либо предмета вытянет его из сетевого хранилища, аналогично трубе шина хранения -> шина экспорта. Интерфейсы могут быть настроены на
хранение одних вещей и не хранение других, что позволяет удаленно заталкивать и вытягивать через шины хранения, если по какой-то причине вы захотите это сделать.

<GameScene zoom="6" background="transparent">
<ImportStructure src="../assets/assemblies/interface_pipes.snbt" />

<BoxAnnotation color="#dddddd" min="3.7 0 0" max="4 1 1">
        Интерфейс
  </BoxAnnotation>

<BoxAnnotation color="#dddddd" min="1 0 0" max="1.3 1 1">
        Шина хранения
  </BoxAnnotation>

<BoxAnnotation color="#dddddd" min="3.7 0 2" max="4 1 3">
        Шина хранения
  </BoxAnnotation>

<BoxAnnotation color="#dddddd" min="0 1 2" max="1 1.3 3">
        Интерфейс
  </BoxAnnotation>

<IsometricCamera yaw="195" pitch="30" />
</GameScene>

## Один-ко-многим и Многие-к-одному (и многие-ко-многим)

Конечно, вам не обязательно использовать только одну <ItemLink id="import_bus" /> или <ItemLink id="export_bus" /> или <ItemLink id="storage_bus" />

<GameScene zoom="3" background="transparent">
<ImportStructure src="../assets/assemblies/many_to_many_pipe.snbt" />

<IsometricCamera yaw="185" pitch="30" />
</GameScene>

## Предоставление в несколько мест

Из всего этого мы можем вывести метод отправки ингредиентов из одной грани <ItemLink id="pattern_provider" /> в несколько различных
мест, например, в массив машин или несколько различных граней одной машины.

Мы не хотим использовать трубу импорт -> хранение или хранение -> экспорт, потому что <ItemLink id="pattern_provider" /> никогда
фактически не содержит ингредиентов. Вместо этого, поставщики *заталкивают* ингредиенты в соседние инвентари, поэтому нам нужен
какой-то соседний инвентарь, который также может импортировать предметы.

Это похоже на... <ItemLink id="interface" />!
Убедитесь, что поставщик находится в режиме направленного или плоского подкомпонента и/или интерфейс находится в режиме плоского подкомпонента, чтобы они не образовывали сетевое соединение.

<GameScene zoom="6" background="transparent">
<ImportStructure src="../assets/assemblies/provider_interface_storage.snbt" />

<BoxAnnotation color="#dddddd" min="2.7 0 1" max="3 1 2">
        Интерфейс (должен быть плоским, не полным блоком)
  </BoxAnnotation>

<BoxAnnotation color="#dddddd" min="1 0 0" max="1.3 1 4">
        Шины хранения
  </BoxAnnotation>

<BoxAnnotation color="#dddddd" min="0 0 0" max="1 1 4">
        Места, куда вы хотите предоставить по шаблону (несколько машин или несколько граней одной машины)
  </BoxAnnotation>

<DiamondAnnotation pos="4.5 0.5 1.5" color="#00ff00">
        Источник
    </DiamondAnnotation>

<DiamondAnnotation pos="0.5 0.5 1.5" color="#00ff00">
        Назначение
    </DiamondAnnotation>

  <IsometricCamera yaw="185" pitch="30" />
</GameScene>
---