Aex 86 Опубликовано: 26 декабря, 2018 (изменено) Давненько не было автокрафтеров тут. Может, кому-то пригодится моя версия. Предназначена в первую очередь для крафта всяких часто необходимых мелочей со сложными крафтами (например, компоненты OpenComputers) из примитивных исходных ресурсов (например, процессор из слитков золота и железа, тростника и редстоуна), которые у пользователя отнимают кучу времени на поиск всех транзисторов и крафт недостающих. Рассчитана на использовании робота и двух сундуков, один из которых - основное хранилище (может быть покрупнее), а другой предназначен для резервирования компонентов при крафте. Ссылка: https://pastebin.com/1gqtWLub Необходимая конфигурация робота: Проверялась работа на компонентах (корпус, память, процессор, жёсткий диск) второго уровня. Screen, Keyboard Crafting Upgrade Inventory Upgrade и Inventory Controller Видеокарта и экран первого уровня Для дальнейших потенциальных расширений: Беспроводная карта Upgrade Container Конфигурация установки: Перед роботом - контейнер ресурсов (любой из возможных инвентарей достаточного размера) Под роботом - контейнер-буфер (можно обычный сундук) Рядом желательно поставить зарядник Возможности: Рекурсивный крафт сложных рецептов. Ресурсов расходуется, по результатам практических испытаний, ровно столько, сколько необходимо. Каталог рецептов для крафта, разбитый на страницы по 10 предметов для более удобного пролистывания на маленьком экране робота. Портативность - требуется только робот, два сундука и исходные ресурсы. Желателен также источник энергии Сообщения о том, каких конкретно исходных ресурсов не хватает для крафта (исходные ресурсы - те, для которых не найдено рецепта) Процесс крафта подробно отображается на экране, чтоб за ним было не так скучно и одиноко следить (см. недостатки) Об окончании крафта робот сообщит приветливым писком. Равно как и о неудаче. Недостатки и известные недочёты: Скорость..... Крафт занимает значительное время. Например, изготовление процессора 3го уровня из примитивных ресурсов (тростник, красный камень, алмазы, дерево для резаков, слитки золота, железа) занимает около 5 минут. Стоит отметить что количество изготавливаемых предметов не сильно влияет на время (2 процессора, скорее всего, будут делаться те же примерно 5 минут). Не умеет работать с альтернативными ресурсами. Возможно, когда-нибудь исправлю. Не умеет работать с инструментами (имеются ввиду многоразовые, как молот ИК2). Возможно, так же когда-нибудь исправлю. Не умеет работать с количествами предметов более стака, а также не гарантируется корректная работа с предметами, не складывающимися в стак. Постараюсь исправить в ближайшее время. Нет поиска по именам компонентов (то есть, либо задаёте название компонента целиком, либо задаёте крафт через каталог). Когда-нибудь поправлю Проверок на наличие контейнеров не делается, так как программа писалась "для себя" и находится в разработке. В дальнейшем будут введены. Также не везде гарантируется наличие защиты от "Количество предметов: Привет". Особенности: Шаблоны содержатся в одном файле, что облегчает переносимость, но приносит определённые неудобства всвязи с размерами файла (12 строк на предмет). Буду думать, как лучше сделать (разбить на разные файлы?). Файл имеющихся шаблонов могу выложить при необходимости (на разных сборках эти шаблоны могут отличаться) Дальнейшее развитие (no promises!): Исправление имеющихся недочётов Поддержка работы по сети (заказ компонентов, сообщение о готовности - дистанционно). Работа с более сложными инвентарями - сборщики, и т.д. Работа с машинами-обработчиками ресурсов - когда-нибудь в отдалённом будущем, скорее всего. Управление: Интерфейс текстовый. Посмотреть команды главного меню можно, нажав "Enter" (оставив поле ввода пустым). Изменено 26 декабря, 2018 пользователем Aex Немного поправил 7 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya 415 Опубликовано: 26 декабря, 2018 (изменено) 24 минуты назад, Aex сказал: Не умеет работать с альтернативными ресурсами. Возможно, когда-нибудь исправлю. Кстати, а почему? Вроде как по имени предмета если забивать крафт, то всё же ок должно быть. В твоей же программе идет по имени предмета, как я понял в этой части кода: function Find(Label, side) local i = 0; for i=1, inv.getInventorySize(side) do if not (inv.getStackInSlot(side, i) == nil) then if inv.getStackInSlot(side, i).label == Label then return i, inv.getStackInSlot(side, i).size; end end end return 0, 0; end По сути, надо ведь заменить только label на name(Или всё сложнее? Я бегло пробежался по программе) Изменено 26 декабря, 2018 пользователем BrightYC 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior 586 Опубликовано: 26 декабря, 2018 9 часов назад, BrightYC сказал: (Или всё сложнее? Я бегло пробежался по программе Сложнее все. Тогда придется или долго и нудно обучать робота на живом крафте, тоесть у него в инвентаре собирать все рецепты. А так как щас реализовано, просто можно прописать самому названия. Но программа офигенная! 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Aex Автор темы 86 Опубликовано: 26 декабря, 2018 Сложнее ещё потому что не всегда можно использовать альтернативные крафты. Например, всякая там мебель BibleCraft. И не у всех альтернативных крафтов такое удобное совпадение имени. Ну и надо создавать какие-то алиасы, потому что пользователь не видит у себя на экране minecraft:planks, он видит у себя Oak Wood Planks. Это конечно решаемо, но усложняет жизнь. В общем, в дальнейшем надо в любом случае думать и дорабатывать этот момент. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya 415 Опубликовано: 26 декабря, 2018 7 часов назад, Asior сказал: Но программа офигенная! Согласен. Но всё же, это стоит того, так как постоянно попадаются разные слитки меди/олова и чего-то еще. А это очень сильно облегчит жизнь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Medvedkoo 2 Опубликовано: 9 августа, 2019 Первый из роботов (после фермера и шахтеров), который не потерялся после запуска. Спасибо за него, отличная программа, думаю сделать несколько улучшений, в том числе сохранение имени рецепта, вывод более удобный ошибок при крафте и русификацию =) Если кому нужно будет - скину 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 155 Опубликовано: 10 августа, 2019 8 часов назад, Medvedkoo сказал: Первый из роботов (после фермера и шахтеров), который не потерялся после запуска. А как этот робот может потеряться, если его программа не предусматривает ни одного движения? У него просто нет шансов. Как говорится, если нет ножек, то нет и побега. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya 415 Опубликовано: 10 августа, 2019 10 часов назад, eu_tomat сказал: А как этот робот может потеряться, если его программа не предусматривает ни одного движения? Я даже бы не удивился если бы робот сбежал 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Medvedkoo 2 Опубликовано: 11 августа, 2019 23 часа назад, eu_tomat сказал: А как этот робот может потеряться, если его программа не предусматривает ни одного движения? У него просто нет шансов. Как говорится, если нет ножек, то нет и побега. Шутка это, просто обидно было когда ушли те. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 155 Опубликовано: 11 августа, 2019 51 минуту назад, Medvedkoo сказал: просто обидно было когда ушли те. Просто они никогда не понимали тебя и не ценили. И если бы они не ушли сами, ты бы однажды сам бросил их. Но ты можешь написать свою программу, которая научит роботов понимать тебя с полуслова и даже с полубайта. Такие роботы всегда будут на связи и никогда не уйдут от тебя, если ты сам не пошлёшь их в дальний путь. 2 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах