Программа находится в разработке. Постараюсь упростить процесс настройки программы.
Данная программа сканирует содержимое вашей МЕ системы и поддерживает заданное количество указанных в списке предметов. Иными словами предварительно крафтит (preCraft). Это полезно на развитых индустриальных базах, где практически всегда есть медленные рецепты с высокой импульсной нагрузкой, так что если заранее их выполнить можно повысить быстродействие вашего автокрафта.
Основой системы является то, что me_interface предоставляет нам информацию о содержимом МЕ и о списке крафтов, а так же предоставляет объекты управления заказанными из OC крафтами. К сожалению получить информацию от текущих крафтах заказанных не из ОС не возможно. Так же API содержит ряд багов по работе со списком предметов в МЕ, а именно некорректно написан фильтр (подробнее можете сами посмотреть на git AE если конечно понимаете scala).
В связи с вышеперечисленным требуется много ОЗУ >2mb. Из периферийных устройств нужен adapter подключенный к ме интерфейсу и database https://ocdoc.cil.li/item:database_upgrade для формирования списка прекрафтов. Я постарался минимизировать блокирующие вызовы, однако сканирование списка крафтов при начальной инициализации системы занимает много времени.
Установка pasebin get 5hnW78DU preCraft.lua
Настройка
Первоначально вам необходимо отредактировать код программы. (позже сделаю утилиту конструктор)
edit preCraft.lua
советую провести манипуляции в текстовом редакторе а потом вставить изменения в ОС
На 32 строчке программы находится
local preCrafts = {
{ size = 1000, label = nil, alias = "SoC", craft = nil, progress = nil },
{ size = 1000, label = nil, alias = "ASoC", craft = nil, progress = nil }
}
33 и 34 строчки это и есть прекрафты, вам необходимо заполнить поля
size = сколько штук поддерживать
поле alias необходимо т.к некоторые моды что используют свою систему предметов например GregTech, Immersive Engineering выдают не человеко читаемые имена блоков. Если вас это устраивает
alias = nil
если нет пропишите имя руками
alias = "название вашего предмета"
теоретически длинна списка не ограничена, однако database t3 содержит 81 предмет и в данный момент дописывание в конец списка не реализовано.
для увеличения списка просто вставьте между 33 и 34 строчками еще строчек и отредактируйте их
{ size = 1000, label = nil, alias = "SoC", craft = nil, progress = nil },
обратите внимание что в конце списка строка не содержит запятой
{ size = 1000, label = nil, alias = "ASoC", craft = nil, progress = nil }
параллельно с составлением списка добавляйте предметы в database первый слот database соответствует первой строке списка и так далее
local preCrafts = {
первая строка списка{ size = 1000, label = nil, alias = "SoC", craft = nil, progress = nil },
вторая строка списка{ size = 1000, label = nil, alias = "ASoC", craft = nil, progress = nil }
}
После окончания заполнения списка и database положите database в адаптер и запустите программу с параметрами --int2ext --pclName=preCraftList.lua
preCraft.lua --int2ext --pclName=preCraftList.lua
программа создаст файл preCraftList.lua после чего database больше не требуется
Запуск программы
preCraft.lua --extList --pclName=preCraftList.lua --thrLim=4
параметр --thrLim=4 определяет сколько крафтовых процессоров использует программа одновременно, по умолчанию 2 (если этот параметр не указывать)
автозапуск программы можно организовать добавив вашу строку запуска
preCraft.lua --extList --pclName=preCraftList.lua --thrLim=4
в .shrc
https://pastebin.com/5hnW78DU
p.s написано под разрешение 160*50. работать будет на любом но консоль отобразится некорректно