rednet.open("back") state = {} ores = {} thelog = {"", "", "", "", "", "", "", ""} logsize = 6 logpos = 1 curjob = 69 firstjob = nil totalfuel = 0 function getNextJob() curjob = curjob + 1 return curjob - 1 end function getOres(ore) return ores[ore] or 0 end function drawState() -- server has 19x50 terminal print(" [ Server Control Panel ]") print(" First Job: "..tostring(firstjob)) print(" Current Job: "..tostring(curjob)) print(" Fuel consumed: "..tostring(totalfuel).." ("..tostring(math.ceil(totalfuel/80))..")") print() n1 = tostring(getOres("minecraft:coal_ore")) n2 = tostring(getOres("minecraft:iron_ore")) n3 = tostring(getOres("minecraft:gold_ore")) n4 = tostring(getOres("minecraft:lapis_ore")) n5 = tostring(getOres("minecraft:redstone_ore")) n6 = tostring(getOres("minecraft:emerald_ore")) n7 = tostring(getOres("minecraft:diamond_ore")) n8 = tostring(getOres("mekanism:tin_ore")) n9 = tostring(getOres("mekanism:copper_ore")) n10 = tostring(getOres("mekanism:osmium_ore")) n11 = tostring(getOres("create:zinc_ore")) n12 = tostring(getOres("create:copper_ore")) print(" C I G "..n1.." "..n2.." "..n3) print(" L R E D "..n4.." "..n5.." "..n6.." "..n7) print(" T C O "..n8.." "..n9.." "..n10) print(" Z C "..n11.." "..n12) print() print("Log:") for i = logpos, (logpos + logsize - 1) do print(thelog[((i-1) % logsize)+1]) -- map from 0..n-1 to 1..n end end function log(s) thelog[logpos] = s logpos = logpos + 1 drawState() end while true do log("From what index do you want to resume jobs?") x = read() if tonumber(x) then curjob = tonumber(x) firstjob = tonumber(x) break end log("That's not a number.") end while true do sender, message, proto = rednet.receive() if not message then sleep(0.6) else if message == "syn" then receiver = sender rednet.send(receiver, "ack") _, message, _ = rednet.receive() if message then if message == "gibjob" then if rs.getInput("top") then job = getNextJob() rednet.send(receiver, tostring(job)) log("Found job request. Offering "..tostring(job)) else rednet.send(receiver, "nojobs") end drawState() elseif message == "report" then _, job, _ = rednet.receive() thejob = tonumber(job) _, fuel, _ = rednet.receive() thefuel = tonumber(fuel) totalfuel = totalfuel + thefuel while true do _, ore, _ = rednet.receive() if ore == "done" then break end _, number, _ = rednet.receive() --thenumber = tonumber(thenumber) if ores[ore] then ores[ore] = ores[ore] + tonumber(number) else ores[ore] = tonumber(number) end drawState() end rednet.send(receiver, "thanks") end end end end end