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

YAAC (Yet Another Autocraft) - автокрафт для робота и двух сундуков

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

Давненько не было автокрафтеров тут. Может, кому-то пригодится моя версия.

 

Предназначена в первую очередь для крафта всяких часто необходимых мелочей со сложными крафтами (например, компоненты 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" (оставив поле ввода пустым).

 

Изменено пользователем Aex
Немного поправил

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


Ссылка на сообщение
Поделиться на других сайтах
24 минуты назад, Aex сказал:
  • Не умеет работать с альтернативными ресурсами. Возможно, когда-нибудь исправлю.

Кстати, а почему? Вроде как по имени предмета если забивать крафт, то всё же ок должно быть.
ca73eb6621d22fe2d60471e1d728ffb6.png
В твоей же программе идет по имени предмета, как я понял в этой части кода:

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(Или всё сложнее? Я бегло пробежался по программе)

 

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

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


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

(Или всё сложнее? Я бегло пробежался по программе

Сложнее все. Тогда придется или долго и нудно обучать робота на живом крафте, тоесть у него в инвентаре собирать все рецепты. А так как щас реализовано, просто можно прописать самому названия.

Но программа офигенная!

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


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

Сложнее ещё потому что не всегда можно использовать альтернативные крафты. Например, всякая там мебель BibleCraft. И не у всех альтернативных крафтов такое удобное совпадение имени. Ну и надо создавать какие-то алиасы, потому что пользователь не видит у себя на экране minecraft:planks, он видит у себя Oak Wood Planks. Это конечно решаемо, но усложняет жизнь.

 

В общем, в дальнейшем надо в любом случае думать и дорабатывать этот момент.

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


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

Но программа офигенная!

Согласен. Но всё же, это стоит того, так как постоянно попадаются разные слитки меди/олова и чего-то еще. А это очень сильно облегчит жизнь. 

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


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

Первый из роботов (после фермера и шахтеров), который не потерялся после запуска. 

Спасибо за него, отличная программа, думаю сделать несколько улучшений, в том числе сохранение имени рецепта, вывод более удобный ошибок при крафте и русификацию =)


Если кому нужно будет - скину

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


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

Первый из роботов (после фермера и шахтеров), который не потерялся после запуска.

А как этот робот может потеряться, если его программа не предусматривает ни одного движения?

У него просто нет шансов. Как говорится, если нет ножек, то нет и побега.

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


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

А как этот робот может потеряться, если его программа не предусматривает ни одного движения?

Я даже бы не удивился если бы робот сбежал:smile3:

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


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

А как этот робот может потеряться, если его программа не предусматривает ни одного движения?

У него просто нет шансов. Как говорится, если нет ножек, то нет и побега.

Шутка это, просто обидно было когда ушли те. 

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


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

просто обидно было когда ушли те.

Просто они никогда не понимали тебя и не ценили. И если бы они не ушли сами, ты бы однажды сам бросил их.

Но ты можешь написать свою программу, которая научит роботов понимать тебя с полуслова и даже с полубайта.

Такие роботы всегда будут на связи и никогда не уйдут от тебя, если ты сам не пошлёшь их в дальний путь.

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


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

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

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

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

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

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

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

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

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


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