Перейти к содержимому
jammer312

Гиперпространственная цистерна.

Рекомендуемые сообщения

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

Концепт - цистерна настроена на некий цвет, хранит некую жидкость; если в цистерне кончается жидкость, она переключается на другой цвет, в цистерне с которым жидкость есть; если же цистерна заполняется - переключается на "пустой" цвет. Вот простая реализация, которая работает (не проверял, но должна) как на ОпенОС, так и на чистой прошивке: https://pastebin.com/2V1qY4LH

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

Для работы нужен комп с подключенным к нему адаптером, стоящим вплотную к цистерне. Работает согласно описаному концепту.

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

 

Преимущества:
1. Весьма дешевая 4-блоковая цистерна емкостью в 65536 ведра (можно меньше).

2. Неужто вам первого пункта не хватило? Оная цистерна может находиться в нескольких местах сразу, а также легко перемещаема, что существенно, например, при осушении незера.

 

Недостатки:

1. Задержка меж обновлениями. Если у вас нечто, что люто быстро забирает или заливает жидкость, скорость оного будет ограничена скоростью компа.

2. "Дребезжание" на границах. Если цистерна заполнена, она будет переключаться меж эти "заполненным" цветом и следующим "пустым", что может немного задержать доступ к жидкости (когда надо выкачать, а оно "прыгнуло" в "пустой" цвет, например). Я не придумал умного способа это отлавливать, но можно придумать внешнее средство контроля (которое в этом неопределенном случае определяет состояние), или захардкодить определенный выбор. Но текущий вариант позволяет без вспомогательных конструкций и забирать, и доливать жидкость, пусть и с небольшой задержкой.

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

 

Проблема:

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

Изменено пользователем jammer312

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 01.05.2018 в 01:34, jammer312 сказал:

"Дребезжание" на границах

Можно одну цистерну настроить на "только вход", другую "только выход".

Первая будет стремиться переключиться на пустой цветовой канал при заполнении текущего

Вторая будет стремиться переключиться на полный цветовой канал при опустошении текущего

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 01.05.2018 в 01:34, jammer312 сказал:

Комп не может менять частоту цистерны с алмазным замком

с версии OC 1.7.3 может

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, vx13 сказал:

с версии OC 1.7.3 может

 

Насколько помню, с 1.7.3 и частоту эндерчеста менять можно

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 15.09.2019 в 20:06, hohserg сказал:

Можно одну цистерну настроить на "только вход", другую "только выход".

Первая будет стремиться переключиться на пустой цветовой канал при заполнении текущего

Вторая будет стремиться переключиться на полный цветовой канал при опустошении текущего

Вместе с @BrightYC сделали версию программы по этой задумке

https://gist.github.com/BrightYC/098a58b8bf629a9868f243ccd3a16254

переменная isInput в начале программы задает режим: ввод или вывод жижы

Работает на eeprom

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, eu_tomat сказал:

@hohserg А что за компонент enderchest_1 присутствует в коде?

это fallback, на сервере, где играем, почему-то вместо ender_tank пишет как enderchest_1. Так же почему-то напрямую через метод enderchest_1 нельзя узнать количество жидкости, поэтому нужен жидкостный контроллер ¯\_(ツ)_/¯

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На сервере, где мы тестили, цистерна называлась так. Видимо, локальная конфигурация или что-то свойственной выделенным серверам

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...