Иногда в ONI нужно не просто прокачивать жидкость по замкнутому контуру, а чётко ограничивать её объём внутри. Например, вы хотите поддерживать в системе ровно 5 тонн воды — ни больше, ни меньше. Для этого можно собрать простую схему на жидкостных счетчиках и логических элементах, которая будет сама регулировать приток и отток жидкости.
Пару слов о счетчиках
Каждый счетчик имеет два логических порта.

Первый (слева) — принимает сигнал и, если подать на него «1» то он сбросит счетчик кол-ва прокачанной жидкости. И, таким образом, разрешит счетчику снова прокачивать жидкость.
Второй порт (справа), наоборот отправляет сигнал. Он отправляет «1», если прокачано указанное в счетчике кол-во жидкости.
Нам понадобится два счетчика — входной и выходной.
- Входной счетчик отвечает за подачу жидкости в контур. Он считает каждый килограмм и по достижении заданного объёма выдаёт зелёный сигнал.
- Выходной счетчик выполняет противоположную задачу — выпускает жидкость наружу из контура.
Логика управления
Сначала я заполняю контур, а потом устанавливаю на обоих счетчиках по 10 кг. Далее счетчики начинают поддерживать установленный объем жидкости в контуре. Они по очереди выпускают/запускают по 10 кг жидкости, управляя друг другом.
Основная проблема в том, как реализовать логику. Если подключить напрямую выходной порт одного счетчика на входной порт другого и наоборот, то схема работать не будет.

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

При таком подключении счетчики будут управлять друг другом, оставляя в контуре постоянный объем жидкости.