Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local component = require("component")
- local gpu = component.gpu
- local transposer = component.transposer
- local intf = component.me_interface
- local event = require("event")
- local sides = require("sides")
- local transposers = {}
- local logic = "north"
- local silicon = "south"
- local eng = "east"
- local calc = "west"
- local intfConfig = {eng={},logic={},calc={},silicon={},redstone={}}
- local materials = {[10]={"calc",1}, [5]={"silicon", 1}, [16]={"calc", 2}, [17]={"eng",2}, [18]={"logic", 2}, [20]={"silicon", 2}, ["minecraft:diamond"]={"eng",1}, ["minecraft:gold_ingot"]={"logic",1}, ["minecraft:redstone"]={"redstone",1}}
- local ntc = {eng=0,logic=1,calc=0,total=1}
- for k,v in component.list("transposer") do
- local invName = component.invoke(k, "getInventoryName", 1)
- if invName == "appliedenergistics2:interface" then
- transposers.main=k
- elseif invName == "minecraft:chest" then
- transposers.addMain={k}
- for i = 2, 5 do local invName1=component.invoke(transposers.addMain[1], "getInventoryName", i) if invName1 == "appliedenergistics2:inscriber" then transposers.addMain[2] = i end end
- elseif invName == "appliedenergistics2:inscriber" then
- transposers.addBottom={k}
- for i = 2, 5 do local invName1=component.invoke(transposers.addBottom[1], "getInventoryName", i) if invName1 == "appliedenergistics2:interface" then transposers.addBottom[2] = i end end
- elseif invName == nil then
- transposers.addTop={k}
- for i = 2, 5 do local invName1=component.invoke(transposers.addTop[1], "getInventoryName", i) if invName1 == "minecraft:chest" then transposers.addTop[2] = i end end
- end
- end
- for i = 1, 9 do
- local slotName = intf.getInterfaceConfiguration(i)
- if slotName.name == "appliedenergistics2:material" then
- intfConfig[materials[slotName.damage][1]][materials[slotName.damage][2]] = i
- else
- intfConfig[materials[slotName.name][1]][materials[slotName.name][2]] = i
- if slotName.name == "minecraft:redstone" then intfConfig.redstone[2] = slotName end
- end
- end
- --for k,v in pairs(intfConfig) do print(k,v) print(k, intfConfig[k][1], intfConfig[k][2]) end
- function craftProcessor(processor, count)
- local main,full,mainCnt,fullCnt,processor,slcn = false, false, 0, 0, "", false
- while ntc.total > 0 do
- if not component.invoke(transposers.addBottom[1], "getStackInSlot", transposers.addBottom[2], intfConfig.silicon[2]) then
- slcn = false
- if component.invoke(transposers.main, "transferItem", sides.top, sides[silicon], 1, intfConfig.silicon[1], 1) == 0 then
- print("Недостаточно кремния")
- else
- mainCnt = mainCnt + 1
- end
- else
- slcn = true
- end
- for k,v in pairs(ntc) do
- if v>0 and k ~= "total" then
- if not component.invoke(transposers.addMain[1], "getStackInSlot", sides.bottom, intfConfig[k][2]) then
- if component.invoke(transposers.main, "transferItem", sides.top, sides[logic], 1, intfConfig[k][1], 1) == 0 then
- print("Для процессора "..k.." недостаточно материалов")
- else
- mainCnt = mainCnt + 1
- end
- else
- if processor == "" then processor = k end
- end
- end
- end
- print(processor)
- if slcn and processor ~= "" then
- if not component.invoke(transposers.addMain[1], "getStackInSlot", sides.bottom, intfConfig.redstone[1]) then
- print("Недостаточно редстоуна")
- else
- full = true
- fullCnt = 0
- component.invoke(transposers.addMain[1], "transferItem", 0, 1, 1, intfConfig[processor][2], 1)
- component.invoke(transposers.addTop[1], "transferItem", transposers.addTop[2], 0, 1, 1, 1)
- component.invoke(transposers.addBottom[1], "transferItem", transposers.addBottom[2], 1, 1, intfConfig.silicon[2], 1)
- component.invoke(transposers.addMain[1], "transferItem", sides.bottom, transposers.addMain[2], 1, intfConfig.redstone[1], 1)
- end
- end
- while true do
- if mainCnt > 0 then
- repeat
- for l = 2, 5 do
- mainCnt = mainCnt - component.invoke(transposers.main, "transferItem", l, 1, 1, 2)
- end
- until
- mainCnt == 0
- end
- if full then
- repeat fullCnt = component.invoke(transposers.addMain[1], "transferItem", transposers.addMain[2], 0, 1, 2) until fullCnt == 1
- full = false
- ntc.total = ntc.total - 1
- ntc[processor] = ntc[processor] - 1
- processor = ""
- end
- if not full then break end
- end
- print(ntc.total)
- end
- end
- craftProcessor()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement