Долго я возился с крафтом проводов для электросхем, которые мне нужно было сделать для 500 улучшенных солнечных панелей. Понял что данный процесс нужно автоматизировать.
Автоверстак из мода Buildcraft конечно можно приспособить для крафта проводов но скорость будет просто ужасная, настроить его нормально вообще не получиться, нужно постоянно бегать смотреть чтобы не забилось.
Решил написать код для робота чтобы он сам крафтил.
На написания и устранение основных багов ушло 2 часа.
Робот крафтит изолированные медные провода, вещи для крафта берет из сундука над собой.
Готовые провода складывает обратно в сундук.
Приблизительная скорость крафта равна 3 проводам в секунду (автоверстак крафтит 1 провод более 5 секунд).
С начало нужно загрузить в сундук ресурсы для крафта и запустить программу в роботе, будет крафтить пока не закончатся ресурсы в сундуке.
Код (еще сырой):
Код:
local component = require("component")
local c = component.crafting
local ic = component.inventory_controller
local r = require("robot")
function craftik(countik)
i = 0
while i < countik do
c.craft(1)
r.dropUp(2)
i = i + 1
end
end
function findcable()
i = 0
while i < numslot do
i = i + 1
ItemStack = ic.getStackInSlot(1,i)
if ItemStack ~= nil then
if ic.getStackInSlot(1,i)["label"] == "Copper Cable" then
return i
end
end
end
return 0
end
function findrubber()
i = 0
while i < numslot do
i = i + 1
ItemStack = ic.getStackInSlot(1,i)
if ItemStack ~= nil then
if ic.getStackInSlot(1,i)["label"] == "Rubber" then
return i
end
end
end
return 0
end
function loadItem(robotslot, chestslot)
ic.suckFromSlot(1,chestslot,64)
r.transferTo(robotslot,64)
end
numslot = ic.getInventorySize(1)
if numslot == nil then
print("Сундук над роботом не найден!")
else
print("Всего слотов в сундуке:"..numslot)
doWork = true
while doWork do
craftik(16)
if r.count(5) < 1 then
print("Кончились провода...")
loadItem(5,findcable())
if r.count(5) < 1 then
doWork = false
end
end
if r.count(6) < 1 then
print("Кончилась резина...")
loadItem(6,findrubber())
if r.count(6) < 1 then
doWork = false
end
end
end
end
- Контроллер инвентаря
- Создание
Последнее редактирование: