-- Furnace control -- Setup: -- (from above) -- Comp - Outp -- Inpu - Furn -- the second computer under the furnace, -- and a wired modem connecting the 2 computers -- Computer 1: http://pastebin.com/06cjixf9 -- Computer 2: (this one) http://pastebin.com/RjyREdT2 -- Screenshots of setup: -- 1 http://i.imgur.com/t9GFE2r.png -- 2 http://i.imgur.com/WjnunBC.png local furnace = peripheral.wrap("top") or error("Unable to wrap furnace!",0) local modemside = "bottom" local modem if peripheral.getType(modemside) == "modem" then modem = peripheral.wrap(modemside) or error("Unable to wrap modem!",0) else error("No modem found, please correct!",0) end local function getAllStacks(inv) local t = {} local size = inv.getInventorySize() for slot = 1,size do local item = inv.getStackInSlot(slot) or {} item.rawName = item.rawName or "" item.qty = item.qty or 0 item.dmg = item.dmg or 0 item.name = item.name or "" item.id = item.id or 0 t[slot] = item end return t end local function isEmpty() local items = getAllStacks(furnace) for slot,item in pairs(items) do if item.qty > 0 then return false end end return true end modem.open(1) print("Waits for control computer to ask if the furnace is empty.") while true do local ev,p1,p2,p3,p4,p5 = os.pullEvent() if ev == "modem_message" and p1 == modemside and p2 == 1 then local msg = textutils.unserialize(p4) if type(msg) == "table" then if msg.task == "furnace" and msg.value == "question" then local reply = textutils.serialize({task="furnace",value=isEmpty()}) modem.transmit(1,1,reply) end end end end