Насос

Насос

alaindustrial:pump
Машины для жидкостейLVРеализованоtier-lvfluid_machinefuel

Сводка

Статус: блок публичный — присутствует в креатив-вкладке, имеет рецепт крафта, GUI, виден в JEI/REI. Это одна из самых энергозатратных машин мода (1000 EU/FE за ведро).

Насос — это LV-машина на EU/FE, которая перекачивает жидкости. Он находит в мире любой источник жидкости (начиная с блока перед собой и по текучей жидкости дальше), либо забирает жидкость из соседнего бака, копит её во внутреннем баке на 10 вёдер и сам выталкивает дальше — в любой соседний бак-приёмник. Бак принимает любую жидкость (не только лаву/воду), поэтому в него можно залить и модовую жидкость — через капсулу или чужую ёмкость. Бак держит только одну жидкость за раз: пока он занят одним видом, другой не принимается, пока не опустеет. Смешивание исключено намеренно — случайно слить два вида в одну трубу не выйдет. Главный сценарий — кормить Геотермальный генератор лавой по трубе, а не таскать вёдра руками; заодно помпа перекачивает воду и любые другие жидкости для будущих жидкостных цепочек.

Энергия

Насос — чистый потребитель энергии: он принимает EU/FE, ничего не отдаёт, и тратит по 1000 EU/FE на каждое выкачанное ведро.

ПолеЗначение
Рольпотребитель с буфером
Буфер (EU/FE)4000 — заметно больше, чем у большинства машин, чтобы накопить сразу на 4 ведра
Макс. вход (EU/FE/такт)32 (низкий тир LV)
Макс. выход (EU/FE/такт)н/п (не отдаёт)
EU/FE за ведро1000 — одна из самых энергозатратных машин

Насос подключается к энергосети как обычный потребитель — сеть энергии находит его сама. Энергия списывается только в тот такт, когда жидкость реально забрана из мира или соседнего бака; заливка вручную через вёдра и проталкивание в приёмник EU/FE не стоят. Как машина низкого тира насос принимает до 32 EU/FE за тик. При 1000 EU/FE/ведро и лимите 32 EU/FE/такт наполнить буфер на одно ведро занимает ~32 тика; буфер на 4000 EU/FE вмещает стоимость 4 вёдер, поэтому даже при рваном притоке энергии помпа редко простаивает. Энергетика по граням. Насос принимает EU/FE на пяти рабочих гранях; передняя грань энергетически инертна (разъёма там нет) — как у любой горизонтальной машины. Поэтому кабель рисует рукав только к пяти рабочим граням, а к передней — нет. Забор жидкости — отдельная подсистема, он по-прежнему читает переднюю грань напрямую (см. Забор), так что энергетическая инертность передней грани не меняет, откуда насос качает жидкость.

Процессинг

Насос не использует систему рецептов: он не перерабатывает предметы, а перемещает жидкость. За один рабочий такт он проходит три шага.

ШагДействиеУсловие
0. Вёдраопустошить жидкостное ведро из слота ввода в бакв слоте ввода есть ведро лавы/воды, бак готов принять, слот вывода свободен под пустое ведро
1. Заборвзять 1 ведро жидкости в бакэнергии в буфере хватает на ведро, в баке есть место и прошёл перерыв между попытками поиска
2. Подачавытолкнуть жидкость из бака в соседние приёмникив баке есть жидкость

Забор. Помпа ищет жидкость начиная с блока прямо перед собой (той гранью, которой смотрит на игрока). Если там сама жидкость или связанная с ней текучая лужа — помпа добирается по ней до ближайшего источника (любой жидкости). Если в мире жидкости нет, пробует забрать ведро из соседнего бака — того же вида, что уже держит, а при пустом баке любого вида, который сосед отдаёт. Ограничения поиска источника в мире: Радиус: до 32 блоков от помпы; Лимит посещённых: до 512 блоков за один скан (защита от лагов на больших разливах); Перерыв: 1 секунда (20 тиков) между попытками поиска — и после успеха, и после неудачи. Найденный источник забирается в бак ведром, а сам блок-источник в мире безвозвратно исчезает (осушается). Текущая, не-источник жидкость не выкачивается — она лишь ведёт поиск к источнику, а после его удаления растекается обратно по ванильным правилам. Если бак уже держит другую жидкость, поиск даже не запускается — помпа не тратит такт впустую. Подача. Помпа выталкивает жидкость во все стороны, кроме той, откуда только что забрала (чтобы не гнать её обратно в источник), и старается отдать сразу весь бак за один такт любому соседнему приёмнику — например, баку геотермального генератора. Во время работы помпа загорается (загорается каждый такт, когда что-то сделано — забор, подача или заливка ведра).

Инвентарь

Четыре слота в сетке 2×2 — для ручной заливки и слива жидкости. Это не основной способ работы помпы, а удобное подспорье.

СлотРядПринимаетКол-во
Ввод заливки (0)верхнийлюбая полная жидкостная ёмкостьдо стека
Вывод заливки (1)верхнийопустевшая тара (только для извлечения)до стека
Ввод слива (2)нижнийлюбая пустая жидкостная ёмкостьдо стека
Вывод слива (3)нижнийнаполненная тара (только для извлечения)до стека

Любая ёмкость, не только ведро. Слоты принимают всё, что умеет носить жидкость: ванильные вёдра лавы и воды, нашу вакуумную капсулу с любой жидкостью, и ёмкости других модов (их ячейки, канистры, капсулы). Помпа не хранит список известных предметов — она спрашивает у самого предмета через стандартный жидкостный интерфейс загрузчика, поэтому чужие контейнеры работают сами собой, без правок с нашей стороны. Обмен идёт строго по одному ведру за раз и по принципу «всё или ничего»: если бак не примет целое ведро (нет места или в нём другая жидкость) или тару некуда положить — не происходит вообще ничего, жидкость и тара остаются на месте. Это не тратит EU/FE (ручная заливка, не насос). Капсула — единственный ручной путь для модовых жидкостей: ванильного ведра для них не существует, а капсула принимает любую. Хопперы и трубы кладут только во входные слоты (0 и 2) и забирают только из выходных (1 и 3) — выходные наполняет сама машина.

Внутренний бак

ПолеЗначение
Ёмкость10 вёдер (10 000 mB)
Принимаетлюбая непустая жидкость, не только лава/вода
Смешиваниезапрещено — пока бак занят одним видом, другой не принимается, пока бак не опустеет
Извлечениеразрешено с любой стороны

Только один вид жидкости за раз. Бак держит не более одного вида жидкости за раз. Если он пуст — принимает любую жидкость (включая модовую); пока занят одним видом — другой отклоняется, пока не опустеет. Смешать жидкости случайно невозможно — это заложено в само устройство бака. Единица объёма — миллибакет (mB). Внутри бака всё считается в миллибакетах: 1 ведро = 1000 mB, а ёмкость бака — 10 000 mB (те самые 10 вёдер). Это значение одинаково на обоих загрузчиках — игрок видит ровно те же объёмы независимо от того, играет ли он на Fabric или NeoForge. Сохранение и миграция. После перезахода бак восстанавливает и объём, и тип жидкости — тип хранится как полный идентификатор (например, minecraft:lava), поэтому любая жидкость переживает перезагрузку. Старые сейвы (где бак знал только лаву/воду) корректно подхватываются: при наличии жидкости без узнаваемого ключа она считывается как лава — единственная, которую знал самый первый насос.

Обмен с капсулами и чужими ёмкостями

Помпа — полноправный участник жидкостного обмена: её бак можно наполнять и осушать не только через ведёрные слоты, но и нашей капсулой, и чужими ёмкостями других модов. Капсула (ручной ПКМ). Пустая жидкостная капсула правым кликом по блоку насоса забирает ровно 1 ведро жидкости из бака и превращается в заполненную; заполненная капсула тем же кликом наливает своё ведро в бак (если там есть место и совпадает/пуст вариант). Это работает на любой грани блока и для любой руки. Обмен имеет приоритет над GUI: пока капсула в руке, ПКМ по насосу меняет жидкость, а не открывает меню; пустой рукой или если обмена не вышло — открывается GUI. С зажатым Shift игра обходит блок и зовёт обмен капсулы напрямую (поэтому GUI при shift+капсула не откроется — только обмен). Чужие ёмкости и трубы. Бак насоса доступен для труб, насосов и танков других модов на любой грани — они могут качать жидкость из насоса и заливать её в насос в обе стороны, без ручного клика.

Интерфейс

У помпы есть графический экран с двумя слотами (под вёдра) и двумя полосами-индикаторами. Тип: GUI с двумя слотами (вёдра) и двумя полосами: Левая — уровень жидкости в баке (растёт снизу вверх). Бак заполняется настоящей текстурой самой жидкости (её блочной still-текстурой с родным тинтом), выложенной плиткой 16×16 и обрезанной по уровню — вода выглядит водой, лава лавой. Модовые жидкости рисуются автоматически своей текстурой: она берётся из ванильной модели жидкости, отдельная текстура под каждую жидкость в атласе мода не нужна. Правая — буфер энергии. Tooltip при наведении показывает имя жидкости + объём в mB и EU/FE / ёмкость буфера. Состояние блока: помпа поворачивается «лицом к игроку» при размещении (этой гранью она и забирает жидкость) и загорается, пока работает.

Свойства блока

Обычный цельный блок: ломается киркой, при сломе заряд не сохраняет (бак и жидкость — сохраняются, см. внутренний бак).

ПолеЗначение
Формаполный куб 16³ (окклюдер)
Прочность3.0
Взрывоустойчивость6.0
Инструменткирка
Звукметалл
Сохраняет заряд при сломенет

Рецепты

Один рецепт на верстаке: железный корпус, два ведра и электронная схема. Два ведра в схеме отражают суть блока — перекачку жидкости; электронная схема задаёт низкий тир машины. Крафт:

Прогрессия

Ранняя LV-машина — ставится, как только появляется стабильный генератор и электронная схема для крафта. Освобождает от ручной возни с вёдрами лавы. Тир: LV Питание: от LV-источника, например Генератор. Назначение: автоматическая подача лавы в Геотермальный генератор жидкостью вместо ручных вёдер; перекачка воды для будущих жидкостных цепочек. Требует: электронную схему для крафта.

Совместимость

Помпа не имеет рецептов переработки, поэтому в просмотрщиках виден только её крафт. Тултип-моды по желанию показывают уровень энергии и заполнение бака. Просмотрщики рецептов (JEI/REI/EMI): только крафт (у насоса нет рецептов переработки). Тултипы (Jade/The One Probe): уровень энергии и уровень жидкости в баке (желательно).

Связанное

Геотермальный генератор — основной потребитель лавы из насоса. Генератор — типичный LV-источник питания для насоса. Компоненты — электронная схема для крафта. Логика I/O-сетей — как устроена подача жидкостей по граням блока.

Крафт

Крафт на верстаке
Железный слиток
Ведро
Железный слиток
Железный слиток
Ведро
Железный слиток
Железный слиток
Электронная схема
Железный слиток
Верстак
Насос
Насос