1

Тема: CONS 0.0.1 + Cactus Power 0.0.1

Встречайте наш ответ рэдстоуну smile

CONS — движок для создания схемотехники, Cactus Power — базирующийся на нём мод (пока ничего интересного в нём нет, только демонстрация возможностей)

API движка CONS 0.0.1 предоставляет:

cons:register_source(nodename, rulefunc) — регистрация источника сигнала, где rulefunc это функция function(node), возвращающая правило активации проводников. В функцию передаётся нода и в зависимости от её параметров можно активировать проводники по-разному (например: как рэдстоун-факел).

cons:register_wire(active_name, inactive_name, rulefunc)  — регистрация проводника, необходимо указать имя ноды в активном и не активном состоянии, а так же передать функцию, возвращающую правило распространения сигнала по проводу.

cons:register_receiver(nodename) — регистрация приёмника. Приёмники активируются по правилам распространения сигнала провода или источника.

cons:register_on_signal_on(action) — регистрация действия при активации приёмника, action это function(pos, node). В функцию передаётся позиция приёмника и его нода.

cons:register_on_signal_off(action) — регистрация действия при деактивации приёмника.

Проводники и приёмники активируются/деактивируются автоматически при установке или разрушении. Но если вы в коде своего мода добавляете, удаляете или перемещаете ноду активированного проводника, источника сигнала или приёмника, то воспользуйтесь следующими функциями:

cons:disconnect(pos, wirename_on) — при удалении активного проводника (wirename_on) с позиции pos, например поршнем.

cons:source_on(node, pos) и cons:source_off(node, pos) — при добавлении или удалении источника сигнала.

cons:check_receiver(pos) — при добавлении приёмника сигнала.


Cactus Power 0.0.1

Сейчас мод годится только для демонстрации возможностей. Попробуйте добавить с помощью /giveme его предметы и проверить работу движка:

node cpwr:lcube_active — источник сигнала, активирует проводники сверху и снизу от себя.

node cpwr:powersand_inactive и cpwr:powermud_inactive — два типа проводников, сигнал распространяется с грани на грань.

node cpwr:glow_inactive — примитивная лампа, приёмник сигнала.

Крафта пока нет, потом всё будет smile На картинке можно увидеть, что источник активирует и проводники и приёмники непосредственно над собой (такое правило), провода изолированны друг от друга (с синего на оранжевый сигнал не проходит и наоборот).

http://storage6.static.itmages.ru/i/12/0109/s_1326130988_9117384_de8cddae75.png


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

CONS: http://ompldr.org/vYzVwOQ
Cactus Power: http://ompldr.org/vYzVwYg

Если общественность одобряе, можно запилить репозиторий и оптимизировать код движка.

Партбилет и кобура.

2

Re: CONS 0.0.1 + Cactus Power 0.0.1

Запилил факела, немного переделал двиг. Описывать изменения как-то лениво, пока не получу требуемого поведения: факела сейчас тухнут по ABM, чтобы исключить мгновенное и бесконечное переключение замкнутых цепей из нечётного числа инверторов при котором игра зависает.

Но АБМ, тоже мало пригоден т.к. работает в слишком маленьком радиусе и, если отбежать от генератора, то он остановится. Хорошо бы АБМ работал на всех загруженных чанках.

+ обнаружил баг, при котором теряется ориентация факела —  похоже на баг движка, т.к. он может 10 раз заменится верно, а 11 раз неправильно. Функция для замены вызывается одна и та же.

Собственно скриншот компактного генератора на инверторах:

http://storage6.static.itmages.ru/i/12/0117/s_1326820768_6807271_d1cb09ca44.png

Партбилет и кобура.

3

Re: CONS 0.0.1 + Cactus Power 0.0.1

Нотч против бесконечных инверторов поступил очень хитро - если слишком быстро переключать сигнал, факелы перегорают.

All is one, one is all.

4

Re: CONS 0.0.1 + Cactus Power 0.0.1

neko259 пишет

Нотч против бесконечных инверторов поступил очень хитро - если слишком быстро переключать сигнал, факелы перегорают.

Я так и не придумал как сделать нормальный алгоритм для этого. Нужна проверка по таймеру, а ничего кроме АБМ для этого нет, во всяком случае мне ничего в голову больше не приходит smile

Партбилет и кобура.

5

Re: CONS 0.0.1 + Cactus Power 0.0.1

Если ты сделаешь факел сущностью, он сможет 1) хранить в себе любые переменные 2) использовать встроенный таймер.

All is one, one is all.

6

Re: CONS 0.0.1 + Cactus Power 0.0.1

Интересная идея, а как ведут себя сущности на удалении в 50 блоков от игрока?

Думаю можно к факелу приладить невидимые сущности, которые и будут активировать провода smile

Партбилет и кобура.

7

Re: CONS 0.0.1 + Cactus Power 0.0.1

Как сделать нодоподобную сущность - смотри в farming. Ну или как в моем огне костыль: в той же позиции, что сущность, стоит и нода. Но у меня сущность сама убивает свою ноду, а вот как сделать, чтобы игрок мог собирать твои факелы, придется подумать.

All is one, one is all.

8

Re: CONS 0.0.1 + Cactus Power 0.0.1

Нода факела должны быть. Надо откуда-то брать правило активации провода, а для этого нужно знать ориентацию ноды. С сущностью такой номер не прокатит, видимо.

ЗЫ. Заметил, что ноды перерисовываются только вблизи игрока. Подключаю длинный проводник, оба конца которого возле меня, ближние ко мне кубы меняют состояние, дальние — только кода подойдёшь.

Партбилет и кобура.

9

Re: CONS 0.0.1 + Cactus Power 0.0.1

Да, так и есть. Мир живет только в определенном радиусе от игрока. Ты должен был заметить, что ты можешь видеть мобов издали, но двигаются они только вблизи. Это сделано для экономии ресурсов без потери внешнего вида мира.

All is one, one is all.

10

Re: CONS 0.0.1 + Cactus Power 0.0.1

Если у тебя конкретные пожелания к апи - пиши фичреквест на форум. Если ты еще сам не придумал, как оно должно работать - никто небе не поможет.

All is one, one is all.