Жидкости

**Жидкости** *(Liquids)* — вещества в жидком агрегатном состоянии.

Все жидкости подвержены гравитации и всегда стремятся течь вниз. Их перемещению препятствуют естественные твердые блоки и некоторые постройки (подробнее тут).

Также жидкости обычно легко растекаются в стороны — вправо и влево (за исключением вязко-геля), и при некоторых обстоятельствах могут течь вверх — если масса жидкости в клетке оказалась больше предельного значения, так называемой **плотности**.

При смешивании нескольких жидкостей в одном резервуаре, они стремятся разделиться по слоям в соответствии с представленной схемой. В игре отсутствует конвекция, поэтому более горячая нефть не будет всплывать над менее горячим керосином или водой.

Отличительной особенностью жидкостей является тот факт, что тепло от одной жидкости к другой передаётся **значительно** быстрее, чем от жидкости к газу или твёрдому блоку (при равных соотношениях характеристик сравниваемых веществ): скрытый коэффициент теплопроводности для жидкостей в соседних клетках составляет **625**. Эту особенность можно выгодно использовать при реализации теплообменников для экономии занятого им места.

## Герметизация

Для герметизации помещений с жидкостями, помимо твёрдых природных блоков, можно использовать следующие постройки:

* все виды плиток, кроме ячеистой
* все виды дверей и шлюзов в закрытом состоянии, за исключением пневматической двери
* переход транзитной трубы
* высоковольтная соединительная пластина и её улучшенная версия
* нижняя часть солнечной панели
* Фермерский блок и гидропонная ферма
* средняя часть пункта доставки рыб и кормушки для рыб
* Нажимная плита

Все остальные постройки не препятствуют движению жидкостей.

## Получение

Жидкости могут быть собраны с помощью жидкостного насоса и перемещены при помощи труб. Также они могут находиться в бутилированном состоянии, например, при их сборе с помощью ручного насоса.

Все жидкости могут быть условно разделены на 3 типа:

1. **Природные**. Могут быть встречены в различных биомах. Примером таких жидкостей могут служить вода, грязная вода, нефть и магма.
2. **Из других состояний**. Для их создания требуется экстремально высокая температура для твёрдых веществ или очень низкая для газов. Исключение составляет ртуть, которая жидкая при комнатной температуре, но она в чистом виде при генерации мира не встречается. Такие жидкости могут быть получены из многих веществ и газов, что есть в игре.
3. **Путём преобразования.** Этот способ позволяет получить из одних жидкостей другие путем их очистки или переработки.

Если природные жидкости можно легко встретить в игре, то для того, чтобы у вас были жидкости второго типа, вам придётся потрудиться. Например, чтобы получить жидкий кислород, его следует охладить до -183.15°C, что довольно проблематично, учитывая, что при такой температуре могут лопнуть трубы. Такой температуры можно добиться, если многократно пропускать кислород через терморегулятор, либо использовать супер-хладагент в контуре охладителя жидкости.

Описанный выше способ получения жидкости из газа является примером конденсации. Твёрдые же ресурсы преобразуются в жидкости при их плавлении при высоких температурах.

## Особые характеристики

К данным характеристикам относятся те из них, которые не указаны в игре явно, но оказывают влияние на многие игровые процессы.

* **Плотность** — максимально допустимая масса жидкости на одной клетке. Иными словами, это значение максимальной массы верхней клетки бассейна, при которой он не переливается через край. Показатель плотности отличается для разных жидкостей, но при этом для всех жидкостей, при возрастании глубины водоёма на одну клетку, плотность увеличивается на **1 %** от предыдущей (например, для чистой и грязной воды 1000 → 1010 → 1020.1 и т. д.) При превышении допустимой плотности, жидкость будет стремиться снизить её, оказывая давление на окружающие клетки (все, кроме диагональных). Если при значительном превышении плотности (более чем в 1.5 раза[уточнить]), соседней клеткой окажется герметизирующая постройка, она будет получать урон и понемногу пропускать жидкость наружу. Исключением являются газопроницаемые плитки, а также ручной и механический шлюзы — они не разрушаются при любом давлении жидкости. Игра считает давление жидкости на блок (или плитку) по суммарному давлению, с некоторым коэффициентом. Таким образом, плитка, с двух сторон которой находится безопасная масса жидкости, **будет** получать урон. Прочность плиток и природных блоков зависит от **твёрдости** материала, а также его **массы**. Например, обычная плитка из песчаника сломается раньше обычной плитки из обсидиана, и обе они - раньше теплоизоляционной плитки из песчаника.[уточнить]
* Так называемая **масса по умолчанию** используется при рисовании жидкостей в песочнице, кроме того, именно этот показатель используется игрой при вычислении, затоплены ли постройки, утонет ли животное или нет. Для затопления постройки и утопления животного требуется масса жидкости > 35% МПУ.
У большинства жидкостей масса по умолчанию меньше, чем плотность.
Образует ли замерзающая жидкость твёрдый блок, также определяется массой по умолчанию: жидкость замерзает в блок при её массе в клетке более **80 %** от данной характеристики. Существуют исключения из этого правила. Например, жидкий ниобий застывает в природный блок при массе всего **24 кг**.
* **Кластер** — максимальная масса жидкости, которая не стекает с одиночной плитки. Кластер численно равен значению горизонтального мин-потока, умноженному на 3. Знание размера кластеров различных жидкостей окажется полезным, если необходимо создавать нестандартные конструкции для сдвигания либо преобразования газов одного в другой, а также использования других, не указанных разработчиками явно, механик игры. Некоторые игроки считают использование таких конструкций багоюзом.
* **Молярная масса**. Эта характеристика отвечает за положение жидкости (или газа) среди других жидкостей: какая из них будет располагаться выше, а какая ниже, если их залить в один бассейн.
* **Мин-поток и макс-поток** — граничные значения для перемещения жидкости в любом направлении за 1 игровой тик. Если масса жидкости для перемещения меньше мин-потока, перемещения не будет вообще. Если же эта масса больше макс-потока, она приравнивается ему. Существует 2 константы для обозначения мин-потока — по горизонтали и по вертикали, но в настоящее время они равны для большинства жидкостей.

## Механика перемещения жидкостей

*Основная статья: [ONI University: Hydrodynamics - A Complete Description of Horizontal Flow For a Single Layer of Liquid Over a Solid]*.
На официальном форуме игры приведён подробный разбор игромеханических особенностей передвижения жидкостей. В данном разделе будет предоставлена информация в упрощённом виде, для ознакомления.

Каждая жидкость имеет несколько особых характеристик, чаще всего скрытых от игрока, но используемых игрой. Для расчёта перемещения используются:

* Кластер
* Мин-поток
* Макс-поток.

Как и газы, жидкости распространяются «по кругу» — лево-низ-право-верх — поэтому движение влево является более приоритетным, влево всегда будет утекать больше жидкости, чем вправо. Смещение всегда происходит не плавно, а дискретно, по одной порции в каждом направлении за каждый тик (0.2 с) . Если движение в ту или иную сторону невозможно, игровой движок игнорирует это направление и переходит к расчёту следующего.

Исходные данные

1. Жидкость находится в пределах 1 клетки на твёрдом основании
2. Масса жидкости в этой клетке не менее 1 кластера и не более плотности
3. Движение жидкости влево и вправо ничем не ограничено (атмосфера одного газа, которому есть куда сдвигаться, либо полный вакуум).

Алгоритм для 1 игрового тика

1. Масса жидкости делится на 4. Эта масса должна будет уйти влево.
2. Если оставшиеся 3/4 больше 1 кластера для данной жидкости, алгоритм идёт далее. Если меньше, из массы на клетке вычитается 1 кластер — это и будет потенциальная масса для перемещения.
3. Если масса для перемещения меньше мин-потока, перемещения не произойдёт.
4. Если масса для перемещения больше макс-потока, она «обрезается» до его уровня.
5. Масса для перемещения переходит на 1 клетку влево.
6. Расчёт повторяется для каждого направления, начиная с п.1. Масса жидкости на исходной клетке постоянно уменьшается.
7. По завершении всех расчётов для данной клетки, игра начинает расчёт для следующих клеток жидкостей.
8. После расчёта перемещений для всех клеток игрового мира тик завершается, изменения становятся визуально видимы.

## Несжимаемые жидкости

Следствием описанных выше правил является то, что если

Плотность
⋅
1

{\displaystyle
\text {Плотность} \cdot 1 % < \text {Вертикальный мин-поток}
}

,
то не будучи ограничена, жидкость не будет увеличивать свою плотность от одного слоя к другому сверху вниз. Это значит, что закон сообщающихся сосудов работать не будет совсем; данная жидкость не будет подниматься вверх по отводу бассейна, и останется в нижней точке.

Примеры таких жидкостей:

* Расплавленное стекло
* Лигроин
* Вязко-гель