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

автокрафт на роботе

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

программа которая может сома крафтить предметы

при установке мода для openOS не соглашайтесь на установку top bios v5.1 он делает программный read only и будет препятствовать своему удалению если хотите хороший БИОС установите мод dev установщиком от сюда

wget https://raw.githubusercontent.com/igorkll/openOSpath/dev/bin/installer.lua /tmp/ins.lua -f; /tmp/ins.lua

 

 

конфигурация робота

  • контроллер инвентаря
  • улучшения верстак
  • два апгрейдя инвентарь(лучше больше)
  • монитор, видеокарта и клавиатура
  • интернет карта(для установки мода для openOS необходимого для запуска)

 

чтобы скачать программу можно пойти двумя путями:

  1. скачать из магазина, скачиваем мод для openOS из соответствующий темы, затем зайти в market, виртуальным курсором навести на robotCraft нажать enter и скачать его 
  2. скачать программу этой командой
    wget https://raw.githubusercontent.com/igorkll/appMarket3/main/robotCraft.lua /usr/bin/robotCraft.lua -f
    а она уже сома откроет установщик мода

 

чтобы открыть программу просто введите в терминале robotCraft, если предлагает установить мод для openOS смело устанавливайте(без него не будет работать)

 

управления

  • в меню можно видеть зарегистрированные предметы а ниже подменю для осуществления различных действий
  • для регистрации предметы выложите его крафт в верхнем левом углу инвентаря робота а результат крафта положите в четвертый слот и нажмите add
  • меня give это продвинутый поиск предметов он скрафтит предмет если не сможет найти
  • find в отличии от give умеет только искать но не крафтить
  • при выборе предметы в главном меню предстанет выбор крафтить один или пока не вылезет какая-то ошибка(например закончатся ресурсы)
  • выход из программы кнопкой exit или ctrl + alt + c(например если идет крафт)
Изменено пользователем rootmaster

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


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

автокрафт на роботе который круче ME машины

Недостаточно просто сказать "круче". Таким заявлениям почти никто уже не верит. Нужны аргументы. Чем именно круче? В чём основные достоинства именно этого автокрафта? Какие имеются недостатки?

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


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

Каким образом ты собрался поставлять промежуточные компоненты для крафта?

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


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

А чего куда размещать?

Где сундуки ставить?

А можно мне чтобы он ресы брал сверху/снизу/корочегдеяукажу?

А скриншоты работы программы?

Крафт поддерживает сложных структур, типа сможет собрать сервер ОС с 0 и за сколько времени?

Есть поддержка мультикрафта, то есть если я закажу 40 кнопок каменных, он их будет крафтить по 1 шт или пачкой сможет сделать?

Есть защита от излишек крафта? Типа крафтим резко 120 предметов 1 типа которые по 8 штук крафтятся.

Поддержка крафтов из разных модов возможна? А то у ОС например все предметы с 1 названием.

Поддержка заменяемости есть? Типа дуб==береза

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

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


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

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

local cfg = {
    crafts = {
        ["minecraft:diamond_pickaxe"] = {
            {{"minecraft:diamond"}, {"minecraft:diamond"}, {"minecraft:diamond"}},
            {nil, {"minecraft:stick"}, nil},
            {nil, {"minecraft:stick"}, nil},
        },
        ["minecraft:stick"] = {
            {nil, {"minecraft:planks"}, nil},
            {nil, {"minecraft:planks"}, nil},
            {nil, nil, nil},
        },
        ["minecraft:planks"] = {
            {{"minecraft:log"}, nil, nil},
            {nil, nil, nil},
            {nil, nil, nil},
        },
    }
}

Чет как-то грустно

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


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

Подобное чудо я тоже собирал, но оно было настолько медленным и вялым, что ... (сервер фулл комплект с моником и прочими минимальными приблудами 30 минут крафтило)

Вопросы какие я задавал, это собственно то самое что я не реализовал.

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

Хранение такое конечно же интересное, но как по мне, лучше рецепты хранить в стандартном формате типа

["minecraft:planks"] = {"minecraft:log"}
["minecraft:stick"] = {"", "minecraft:planks", "", "", "minecraft:planks"},
            

А дальше уже прогонять внутреннюю обработку.

Ну и закидку на будущее делай, количество модов надо учитывать, так как всегда найдется человек который попытается вбить все моды в программу, а ОЗУ не сильно резиновая. Так что стоит пересмотреть формат на хранение данных на диске с быстрым доступом к ним

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


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

IMHO компактнее хранить данные о крафтах в виде id зарегистрированных в базе данных автокрафта предметов. Иначе памяти не напасешься хранить вот это всё

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


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

Подобное чудо я тоже собирал, но оно было настолько медленным и вялым, что ... (сервер фулл комплект с моником и прочими минимальными приблудами 30 минут крафтило)

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

 

1 час назад, Asior сказал:

Хранение такое конечно же интересное, но как по мне, лучше рецепты хранить в стандартном формате типа...

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

 

26 минут назад, Taoshi сказал:

IMHO компактнее хранить данные о крафтах в виде id зарегистрированных в базе данных автокрафта предметов. Иначе памяти не напасешься хранить вот это всё

Что-то не помню: а разве контроллеры инвентаря по умолчанию имеют доступ к id предметов?

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


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

Что-то не помню: а разве контроллеры инвентаря по умолчанию имеют доступ к id предметов?

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

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


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

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

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


Но идея не лишена смысла. Замена строк на числа даже без привязки к id позволит уменьшить размер ядра БД и снизить вычислительную нагрузку при анализе крафтов с длинными и разветвлёнными цепочками.

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


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

разве контроллеры инвентаря по умолчанию имеют доступ к id предметов

id базы данных автокрафта ~= id игрового клиента. В этом вся суть.

 

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

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


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

id базы данных автокрафта ~= id игрового клиента. В этом вся суть.

Термин "id предмета" в Майнкрафте имеет устойчивый смысл. Поэтому при его использовании в других смыслах предлагаю сразу делать уточнение, а ещё лучше изначально использовать другой термин.

 

2 часа назад, Taoshi сказал:

В моей практике встречались идентичные названия подобного типа в некоторых модах.

Это не редкость. Большинство предметов OpenComputers не описываются одним лишь id или именем предмета.

 

3 часа назад, Taoshi сказал:

Поэтому желательно использовать не только внутреннюю нумерацию предметов и блоков, но и документировать внешнюю.

Я бы даже сказал, не столько документировать, сколько иметь записи в таблицах преобразования информации о предметах во внутренние номера и обратно.

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


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

openperipheral вот где ответ, ну если этот мод конечно есть в сборке, с его помощью можно у не стандартных предметов узнать nbt_hash и уже по нему ориентироваться, но можно ли его api использовать для робота в автокрафте, это вопрос, это да, можно проверить

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


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

openperipheral вот где ответ, ну если этот мод конечно есть в сборке, с его помощью можно у не стандартных предметов узнать nbt_hash и уже по нему ориентироваться, но можно ли его api использовать для робота в автокрафте, это вопрос, это да, можно проверить

Не совсем так. В примере @Taoshi для "minecraft:planks" мы получим одинаково пустое поле nbt_hash для разных видов досок. А отличатся они будут полем damage, которое можно получить и без OpenPeripheral. Кстати, информацию о тегах можно получить и иными путями:

 

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


Ссылка на сообщение
Поделиться на других сайтах
В 31.05.2022 в 18:08, num_pi сказал:

Каким образом ты собрался поставлять промежуточные компоненты для крафта?

от сам их скрафтит, если чегото не хватает

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

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


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

@rootmaster Правильно ли я понял, что эта система автокрафта состоит из единственного робота даже без вспомогательных сундуков, а все необходимые для крафта материалы должны находиться во внутреннем инвентаре робота?

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


Ссылка на сообщение
Поделиться на других сайтах
В 03.06.2022 в 12:49, eu_tomat сказал:

@rootmaster Правильно ли я понял, что эта система автокрафта состоит из единственного робота даже без вспомогательных сундуков, а все необходимые для крафта материалы должны находиться во внутреннем инвентаре робота?

да ты правильно все понял

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


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

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

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

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

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

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

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

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

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


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