Тема: Даёшь ответ пропиетарному рэдстоуну!
Хочется сделать в майнтесте некое подобие рэдстоуна, но лучше, поэтому я тут выскажу свои соображения на этот счёт и попутно попробую написать плагин
Итак, основные идеи плагина:
Изолированные проводники (разных цветов). Думаю, что пока хватит 2х цветов;
Пространственное расположение проводников, а не на поверхности как в майнкрафте;
Минимизация схем за счёт использования «логических кубов».
Используемые материалы
Основа всех предметов мода — powerdust «энергопыль», получаемая из MESE или, например, при сжигании в печке травы из джунглей.
При смешении энергопыли с песком или грязью получаем соответственно powersand «энергопесок» и powermud «энергогрязь» — проводники сигнала.
Типы конструкций
Предусмотрены следующие типы конструкций:
Проводники;
Источники сигнала — кнопки, датчики и т.п.;
Приёмники сигнала — индикаторы и механизмы;
Входные и выходные кубы — два типа кубов, реализующих логические элементы.
Параметры кубов
Входные и выходные кубы представляют собой логические элементы, грани куба являются либо входами, либо выходами. Источники сигнала с одной или нескольких граней наводят сигнал на проводник, приёмники — принимают сигнал со стороны одной или нескольких граней. Для определённости пронумеруем грани куба:
1 — левая грань, 2 — лицевая грань, 3 — правая грань, 4 — задняя грань, 5 — верхняя грань, 6 — нижняя грань.
Входные кубы
Входные кубы реализуют основные логические функции, входами являются грани (1,2,3,5,6), выход — 4 грань.
Очевидно, что подключены могут быть не все входы: в этом случае не подключенные грани не учитываются при вычислении логической функции. Если не подключена ни одна из граней, то на выходе куба нет сигнала.
Логические функции реализуемые входными кубами:
И — логическое И по подключённым входам;
ИЛИ — логическое или по подключённым входам;
Искл. ИЛИ — исключающее или (равнозначность) по подключённым входам.
Выходные кубы
Базовые выходные кубы реализуют всего две функции: повторение или инверсия сигнала. Выходами являются грани (1,2,3,5,6), вход — 4 грань.
Не подключённый вход воспринимается как «лог. 0» на входе. В общем случае все выходы повторяют друг друга.
ИЛИ — повторение сигнала, используется для коммутации проводников разного цвета;
НЕ — инверсия сигнала, используется как инвертор и как источник постоянного сигнала (как рэдстоун-факел).
Дополнительные выходные кубы:
Триггер — переключает своё состояние по фронту входного импульса;
Одновибратор — формирует импульс по фронту входного сигнала;
Допускается непосредственное соединение входных и выходных кубов по 4 грани.
Источники сигнала
Переключатель — активируемый куб, все грани являются выходами. Грань 2 является так же индикатором состояния.
Кнопка — активируемый куб, при активации формирует импульс после чего возвращается в не активированное состояние. Все грани являются выходами. Грань 2 является так же индикатором состояния.
Датчик освещённости — при попадании на него света излучает сигнал со всех граней.
Приёмники сигнала
Лампа — блок, начинающий излучать свет при подаче сигнала с любой стороны.
Пока я придумал только один механизм: гравикуб. Грань 2 является входной, при наличии входного сигнала «лог. 1» от грани 4 отталкивается куб, при «лог. 0» к 4 грани притягивается куб. если проводник не подключён, то гравикуб ничего не делает.
Вот такая вот задумка, надеюсь получится всё это реализовать. Хотелось бы услышать ваши комментарии по поводу плагина и рационализаторские предложения.
З.Ы. Рецепты крафта ещё не думал.