Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function clear()
- term.clear()
- term.setCursorPos(1,1)
- end
- function output(x, y, t)
- term.setCursorPos(x,y)
- term.write(t)
- end
- function getPos()
- info = POSsensor.getTargetDetails("abihoooo")
- pos = info.Position
- pos["Y"] = math.floor(pos["Y"]+.5)
- if(pos["X"] < 0) then
- pos["X"] = math.ceil(pos["X"]-.5)
- else
- pos["X"] = math.floor(pos["X"]+.5)
- end
- if(pos["Z"] < 0) then
- pos["Z"] = math.ceil(pos["Z"]-.5)
- else
- pos["Z"] = math.floor(pos["Z"]+.5)
- end
- return pos
- end
- function getDir()
- info = POSsensor.getTargetDetails("abihoooo")
- if(info.Yaw > 45 and info.Yaw < 135) then
- return "W"
- elseif(info.Yaw > 225 and info.Yaw < 315) then
- return "E"
- elseif(info.Yaw > 315 and info.Yaw < 360) then
- return "S"
- elseif(info.Yaw > 0 and info.Yaw < 45) then
- return "S"
- elseif(info.Yaw > 135 and info.Yaw < 225) then
- return "N"
- elseif(info.Yaw > -135 and info.Yaw < -45) then
- return "W"
- elseif(info.Yaw > -315 and info.Yaw < -225) then
- return "E"
- elseif(info.Yaw > -360 and info.Yaw < -315) then
- return "S"
- elseif(info.Yaw > -45 and info.Yaw < 0) then
- return "S"
- elseif(info.Yaw > -225 and info.Yaw < -135) then
- return "N"
- end
- end
- function getMachine()
- pos = getPos()
- dir = getDir()
- if(dir == "W") then
- pos["X"] = pos["X"]+1
- elseif(dir == "E") then
- pos["X"] = pos["X"]-1
- elseif(dir == "N") then
- pos["Z"] = pos["X"]+1
- elseif(dir == "S") then
- pos["Z"] = pos["X"]-1
- else
- output(1,1, "Error.")
- end
- posF = pos["X"]..","..pos["Y"]..","..pos["Z"]
- for x = 1, 7 do
- if(posF == MACpos[x]) then
- return MACloc[x], "MAC", x
- end
- end
- for x = 1, 6 do
- if(posF == FURpos[x]) then
- return FURloc[x], "FUR", x
- end
- end
- for x = 1, 3 do
- if(posF == EXTpos[x]) then
- return EXTloc[x], "EXT", x
- end
- if(posF == RECpos[x]) then
- return RECloc[x], "REC", x
- end
- end
- end
- function macRelays(page)
- clear()
- output(18, 1, "[[Refinery Info]]")
- output(21, 2, "[Macerator]")
- MACrelayInfo = {}
- if(page == 1) then
- for x = 1, 9 do
- info = MACsensor.getTargetDetails(MACREloc[1])
- MACrelayInfo[x] = {}
- MACrelayInfo[x][1] = info["Slots"][x]["Name"]
- MACrelayInfo[x][2] = info["Slots"][x]["Size"]
- end
- for x = 10, 18 do
- info = MACsensor.getTargetDetails(MACREloc[2])
- MACrelayInfo[x] = {}
- MACrelayInfo[x][1] = info["Slots"][x-9]["Name"]
- MACrelayInfo[x][2] = info["Slots"][x-9]["Size"]
- end
- output(1, 19, "[M]Main Menu [R]Refresh [Q]Macerators [P]Next Page")
- output(2, 4, "Relay 1:")
- for x = 1, 9 do
- output(3, x+4, MACrelayInfo[x][1].." - "..MACrelayInfo[x][2])
- end
- output(26, 4, "Relay 2:")
- for x = 10, 18 do
- output(27, x-5, MACrelayInfo[x][1].." - "..MACrelayInfo[x][2])
- end
- while(true) do
- event, char = os.pullEvent()
- if(char == "m") then
- mainMenu()
- elseif(char == "r") then
- macRelays(1)
- elseif(char == "q") then
- maceratorInfo()
- elseif(char == "p") then
- macRelays(2)
- end
- end
- elseif(page == 2) then
- output(1, 19, "[M]Main Menu [R]Refresh [Q]Next Page [P]Prev. Page")
- for x = 1, 9 do
- info = MACsensor.getTargetDetails(MACREloc[3])
- MACrelayInfo[x] = {}
- MACrelayInfo[x][1] = info["Slots"][x]["Name"]
- MACrelayInfo[x][2] = info["Slots"][x]["Size"]
- end
- for x = 10, 18 do
- info = MACsensor.getTargetDetails(MACREloc[4])
- MACrelayInfo[x] = {}
- MACrelayInfo[x][1] = info["Slots"][x-9]["Name"]
- MACrelayInfo[x][2] = info["Slots"][x-9]["Size"]
- end
- output(2, 4, "Relay 3:")
- for x = 1, 9 do
- output(3, x+4, MACrelayInfo[x][1].." - "..MACrelayInfo[x][2])
- end
- output(26, 4, "Relay 4:")
- for x = 10, 18 do
- output(27, x-5, MACrelayInfo[x][1].." - "..MACrelayInfo[x][2])
- end
- while(true) do
- event, char = os.pullEvent()
- if(char == "m") then
- mainMenu()
- elseif(char == "r") then
- macRelays(2)
- elseif(char == "q") then
- macRelays(3)
- elseif(char == "p") then
- macRelays(1)
- end
- end
- elseif(page == 3) then
- output(1, 19, "[M]Main Menu [R]Refresh [Q]Next Page [P]Prev. Page")
- for x = 1, 9 do
- info = MACsensor.getTargetDetails(MACREloc[5])
- MACrelayInfo[x] = {}
- MACrelayInfo[x][1] = info["Slots"][x]["Name"]
- MACrelayInfo[x][2] = info["Slots"][x]["Size"]
- end
- for x = 10, 18 do
- info = MACsensor.getTargetDetails(MACREloc[6])
- MACrelayInfo[x] = {}
- MACrelayInfo[x][1] = info["Slots"][x-9]["Name"]
- MACrelayInfo[x][2] = info["Slots"][x-9]["Size"]
- end
- output(2, 4, "Relay 5:")
- for x = 1, 9 do
- output(3, x+4, MACrelayInfo[x][1].." - "..MACrelayInfo[x][2])
- end
- output(26, 4, "Relay 6:")
- for x = 10, 18 do
- output(27, x-5, MACrelayInfo[x][1].." - "..MACrelayInfo[x][2])
- end
- while(true) do
- event, char = os.pullEvent()
- if(char == "m") then
- mainMenu()
- elseif(char == "r") then
- macRelays(3)
- elseif(char == "q") then
- macRelays(4)
- elseif(char == "p") then
- macRelays(2)
- end
- end
- elseif(page == 4) then
- output(1, 19, "[M]Main Menu [R]Refresh [Q]Macerator [P]Prev. Page")
- for x = 1, 9 do
- info = MACsensor.getTargetDetails(MACREloc[7])
- MACrelayInfo[x] = {}
- MACrelayInfo[x][1] = info["Slots"][x]["Name"]
- MACrelayInfo[x][2] = info["Slots"][x]["Size"]
- end
- output(2, 4, "Relay 7:")
- for x = 1, 9 do
- output(3, x+4, MACrelayInfo[x][1].." - "..MACrelayInfo[x][2])
- end
- while(true) do
- event, char = os.pullEvent()
- if(char == "m") then
- mainMenu()
- elseif(char == "r") then
- macRelays(4)
- elseif(char == "q") then
- maceratorInfo()
- elseif(char == "p") then
- macRelays(3)
- end
- end
- end
- end
- function maceratorInfo()
- clear()
- output(18, 1, "[[Refinery Info]]")
- output(21, 2, "[Macerator]")
- output(1, 19, "[M]Main Menu [R]Refresh [Q]Relays")
- MACinfo = {}
- for x = 1, 7 do
- info = MACsensor.getTargetDetails(MACloc[x])
- slots = info["Slots"]
- MACinfo[x] = {}
- MACinfo[x][1] = slots[1]["Name"]
- MACinfo[x][2] = slots[1]["Size"]
- MACinfo[x][3] = slots[3]["Size"]
- end
- output(2, 4, "MAC1:")
- output(3, 5, "Item: "..MACinfo[1][1])
- output(3, 6, "Percentage Full: "..math.floor(MACinfo[1][2] / 64 * 100).."%")
- output(2, 8, "MAC2:")
- output(3, 9, "Item: "..MACinfo[2][1])
- output(3, 10, "Percentage Full: "..math.floor(MACinfo[2][2] / 64 * 100).."%")
- output(2, 12, "MAC3:")
- output(3, 13, "Item: "..MACinfo[3][1])
- output(3, 14, "Percentage Full: "..math.floor(MACinfo[3][2] / 64 * 100).."%")
- output(2, 16, "MAC4:")
- output(3, 17, "Item: "..MACinfo[4][1])
- output(3, 18, "Percentage Full: "..math.floor(MACinfo[4][2] / 64 * 100).."%")
- output(26, 4, "MAC5:")
- output(27, 5, "Item: "..MACinfo[5][1])
- output(27, 6, "Percentage Full: "..math.floor(MACinfo[5][2] / 64 * 100).."%")
- output(26, 8, "MAC6:")
- output(27, 9, "Item: "..MACinfo[6][1])
- output(27, 10, "Percentage Full: "..math.floor(MACinfo[6][2] / 64 * 100).."%")
- output(26, 12, "MAC7:")
- output(27, 13, "Item: "..MACinfo[7][1])
- output(27, 14, "Percentage Full: "..math.floor(MACinfo[7][2] / 64 * 100).."%")
- while(true) do
- event, char = os.pullEvent()
- if(char == "m") then
- mainMenu()
- elseif(char == "r") then
- maceratorInfo()
- elseif(char == "q") then
- macRelays(1)
- end
- end
- end
- function furRelays(page)
- clear()
- output(18, 1, "[[Refinery Info]]")
- output(22, 2, "[Furnace]")
- if(page == 1) then
- output(1, 19, "[M]Main Menu [R]Refresh [Q]Furnace [P]Next Page")
- for x = 1, 9 do
- info = FURsensor.getTargetDetails(FURREloc[1])
- FURrelayInfo[x] = {}
- FURrelayInfo[x][1] = info["Slots"][x]["Name"]
- FURrelayInfo[x][2] = info["Slots"][x]["Size"]
- end
- for x = 10, 18 do
- info = FURsensor.getTargetDetails(FURREloc[2])
- FURrelayInfo[x] = {}
- FURrelayInfo[x][1] = info["Slots"][x-9]["Name"]
- FURrelayInfo[x][2] = info["Slots"][x-9]["Size"]
- end
- output(2, 4, "Relay 1:")
- for x = 1, 9 do
- output(3, x+4, FURrelayInfo[x][1].." - "..FURrelayInfo[x][2])
- end
- output(26, 4, "Relay 2:")
- for x = 10, 18 do
- output(3, x-5, FURrelayInfo[x][1].." - "..FURrelayInfo[x][2])
- end
- while(true) do
- event, char = os.pullEvent()
- if(char == "m") then
- mainMenu()
- elseif(char == "r") then
- furRelays(1)
- elseif(char == "q") then
- furnaceInfo()
- elseif(char == "p") then
- furRelays(2)
- end
- end
- elseif(page == 2) then
- output(1, 19, "[M]Main Menu [R]Refresh [Q]Prev. Page [P]Next Page")
- for x = 1, 9 do
- info = FURsensor.getTargetDetails(FURREloc[3])
- FURrelayInfo[x] = {}
- FURrelayInfo[x][1] = info["Slots"][x]["Name"]
- FURrelayInfo[x][2] = info["Slots"][x]["Size"]
- end
- for x = 10, 18 do
- info = FURsensor.getTargetDetails(FURREloc[4])
- FURrelayInfo[x] = {}
- FURrelayInfo[x][1] = info["Slots"][x-9]["Name"]
- FURrelayInfo[x][2] = info["Slots"][x-9]["Size"]
- end
- output(2, 4, "Relay 3:")
- for x = 1, 9 do
- output(3, x+4, FURrelayInfo[x][1].." - "..FURrelayInfo[x][2])
- end
- output(26, 4, "Relay 4:")
- for x = 10, 18 do
- output(3, x-5, FURrelayInfo[x][1].." - "..FURrelayInfo[x][2])
- end
- while(true) do
- event, char = os.pullEvent()
- if(char == "m") then
- mainMenu()
- elseif(char == "r") then
- furRelays(2)
- elseif(char == "q") then
- furRelays(1)
- elseif(char == "p") then
- furRelays(3)
- end
- end
- elseif(page == 3) then
- output(1, 19, "[M]Main Menu [R]Refresh [Q]Prev. Page [P]Furnace")
- for x = 1, 9 do
- info = FURsensor.getTargetDetails(FURREloc[5])
- FURrelayInfo[x] = {}
- FURrelayInfo[x][1] = info["Slots"][x]["Name"]
- FURrelayInfo[x][2] = info["Slots"][x]["Size"]
- end
- for x = 10, 18 do
- info = FURsensor.getTargetDetails(FURREloc[6])
- FURrelayInfo[x] = {}
- FURrelayInfo[x][1] = info["Slots"][x-9]["Name"]
- FURrelayInfo[x][2] = info["Slots"][x-9]["Size"]
- end
- output(2, 4, "Relay 5:")
- for x = 1, 9 do
- output(3, x+4, FURrelayInfo[x][1].." - "..FURrelayInfo[x][2])
- end
- output(26, 4, "Relay 6:")
- for x = 10, 18 do
- output(3, x-5, FURrelayInfo[x][1].." - "..FURrelayInfo[x][2])
- end
- while(true) do
- event, char = os.pullEvent()
- if(char == "m") then
- mainMenu()
- elseif(char == "r") then
- furRelays(3)
- elseif(char == "q") then
- furRelays(2)
- elseif(char == "p") then
- furnaceInfo()
- end
- end
- end
- end
- function furnaceInfo()
- clear()
- output(18, 1, "[[Refinery Info]]")
- output(22, 2, "[Furnace]")
- output(1, 19, "[M]Main Menu [R]Refresh [Q] Relays")
- FURinfo = {}
- FURrelayInfo = {}
- for x = 1, 6 do
- info = FURsensor.getTargetDetails(FURloc[x])
- slots = info["Slots"]
- FURinfo[x] = {}
- FURinfo[x][1] = slots[1]["Name"]
- FURinfo[x][2] = slots[1]["Size"]
- FURinfo[x][3] = slots[3]["Size"]
- end
- output(2, 4, "FUR1:")
- output(3, 5, "Item: "..FURinfo[1][1])
- output(3, 6, "Percentage Full: "..math.floor(FURinfo[1][2] / 64 * 100).."%")
- output(2, 8, "FUR2:")
- output(3, 9, "Item: "..FURinfo[2][1])
- output(3, 10, "Percentage Full: "..math.floor(FURinfo[2][2] / 64 * 100).."%")
- output(2, 12, "FUR3:")
- output(3, 13, "Item: "..FURinfo[3][1])
- output(3, 14, "Percentage Full: "..math.floor(FURinfo[3][2] / 64 * 100).."%")
- output(26, 4, "FUR4:")
- output(27, 5, "Item: "..FURinfo[4][1])
- output(27, 6, "Percentage Full: "..math.floor(FURinfo[4][2] / 64 * 100).."%")
- output(26, 8, "FUR5:")
- output(27, 9, "Item: "..FURinfo[5][1])
- output(27, 10, "Percentage Full: "..math.floor(FURinfo[5][2] / 64 * 100).."%")
- output(26, 12, "FUR6:")
- output(27, 13, "Item: "..FURinfo[6][1])
- output(27, 14, "Percentage Full: "..math.floor(FURinfo[6][2] / 64 * 100).."%")
- while(true) do
- event, char = os.pullEvent()
- if(char == "m") then
- mainMenu()
- elseif(char == "r") then
- furnaceInfo()
- elseif(char == "q") then
- furRelays(1)
- end
- end
- end
- function extractorInfo()
- clear()
- output(18, 1, "[[Refinery Info]]")
- output(21, 2, "[Extractor]")
- output(1, 19, "[M]Main Menu [R]Refresh")
- EXTinfo = {}
- EXTrelayInfo = {}
- for x = 1, 3 do
- info = EXTsensor.getTargetDetails(EXTloc[x])
- slots = info["Slots"]
- EXTinfo[x] = {}
- EXTinfo[x][1] = slots[1]["Name"]
- EXTinfo[x][2] = slots[1]["Size"]
- EXTinfo[x][3] = slots[3]["Size"]
- end
- output(2, 4, "EXT1:")
- output(3, 5, "Item: "..EXTinfo[1][1])
- output(3, 6, "Percentage Full: "..math.floor(EXTinfo[1][2] / 64 * 100).."%")
- output(2, 8, "EXT2:")
- output(3, 9, "Item: "..EXTinfo[2][1])
- output(3, 10, "Percentage Full: "..math.floor(EXTinfo[2][2] / 64 * 100).."%")
- output(2, 12, "EXT3:")
- output(3, 13, "Item: "..EXTinfo[3][1])
- output(3, 14, "Percentage Full: "..math.floor(EXTinfo[3][2] / 64 * 100).."%")
- while(true) do
- event, char = os.pullEvent()
- if(char == "m") then
- mainMenu()
- elseif(char == "r") then
- extractorInfo()
- end
- end
- end
- function recyclerInfo()
- clear()
- output(18, 1, "[[Refinery Info]]")
- output(21, 2, "[Recyclers]")
- output(1, 19, "[M]Main Menu [R]Refresh")
- RECinfo = {}
- RECrelayInfo = {}
- for x = 1, 3 do
- info = RECsensor.getTargetDetails(RECloc[x])
- slots = info["Slots"]
- RECinfo[x] = {}
- RECinfo[x][1] = slots[1]["Name"]
- RECinfo[x][2] = slots[1]["Size"]
- RECinfo[x][3] = slots[3]["Size"]
- end
- output(2, 4, "REC1:")
- output(3, 5, "Item: "..RECinfo[1][1])
- output(3, 6, "Percentage Full: "..math.floor(RECinfo[1][2] / 64 * 100).."%")
- output(2, 8, "REC2:")
- output(3, 9, "Item: "..RECinfo[2][1])
- output(3, 10, "Percentage Full: "..math.floor(RECinfo[2][2] / 64 * 100).."%")
- output(2, 12, "REC3:")
- output(3, 13, "Item: "..RECinfo[3][1])
- output(3, 14, "Percentage Full: "..math.floor(RECinfo[3][2] / 64 * 100).."%")
- while(true) do
- event, char = os.pullEvent()
- if(char == "m") then
- mainMenu()
- elseif(char == "r") then
- recyclerInfo()
- end
- end
- end
- function viewMachine()
- clear()
- output(18, 1, "[[Refinery Info]]")
- output(18, 2, "[Current Machine]")
- output(1, 19, "[M] Main Menu [R] Refresh")
- loc, type, num = getMachine()
- if(type == "MAC") then
- info = MACsensor.getTargetDetails(loc)
- relay = MACsensor.getTargetDetails(MACREloc[num])
- slots = info.Slots
- output(2, 4, "MAC"..num..":")
- output(3, 5, "Item: "..slots[1]["Name"])
- output(3, 6, "Percentage Full : "..math.floor(slots[1]["Size"] / 64 * 100).."%")
- output(26, 4, "Relay: ")
- relaySlot = relay.Slots
- for x = 1, 9 do
- output(27, x+4, relaySlot[x]["Name"].." - "..relaySlot[x]["Size"])
- end
- elseif(type == "FUR") then
- info = FURsensor.getTargetDetails(loc)
- relay = FURsensor.getTargetDetails(FURREloc[num])
- slots = info.Slots
- output(2, 4, "FUR"..num..":")
- output(3, 5, "Item: "..slots[1]["Name"])
- output(3, 6, "Percentage Full : "..math.floor(slots[1]["Size"] / 64 * 100).."%")
- relaySlot = relay.Slots
- for x = 1, 9 do
- output(27, x+4, relaySlot[x]["Name"].." - "..relaySlot[x]["Size"])
- end
- elseif(type == "EXT") then
- info = EXTsensor.getTargetDetails(loc)
- relay = EXTsensor.getTargetDetails(EXTREloc[num])
- slots = info.Slots
- output(2, 4, "EXT"..num..":")
- output(3, 5, "Item: "..slots[1]["Name"])
- output(3, 6, "Percentage Full : "..math.floor(slots[1]["Size"] / 64 * 100).."%")
- relaySlot = relay.Slots
- for x = 1, 9 do
- output(27, x+4, relaySlot[x]["Name"].." - "..relaySlot[x]["Size"])
- end
- elseif(type == "REC") then
- info = RECsensor.getTargetDetails(loc)
- relay = RECsensor.getTargetDetails(RECREloc[num])
- slots = info.Slots
- output(2, 4, "REC"..num..":")
- output(3, 5, "Item: "..slots[1]["Name"])
- output(3, 6, "Percentage Full : "..math.floor(slots[1]["Size"] / 64 * 100).."%")
- relaySlot = relay.Slots
- for x = 1, 9 do
- output(27, x+4, relaySlot[x]["Name"].." - "..relaySlot[x]["Size"])
- end
- else
- output(1, 4, "No machine found.")
- end
- while(true) do
- event, char = os.pullEvent()
- if(event == "char" or event == "pda_char") then
- if(char == "m") then
- mainMenu()
- elseif(char == "r") then
- viewMachine()
- end
- end
- end
- end
- function mainMenu()
- clear()
- output(18, 1, "[[Refinery Info]]")
- output(21, 2, "[Main Menu]")
- output(3, 5, "[1] Macerator Info")
- output(3, 7, "[2] Furnace Info")
- output(3, 9, "[3] Extractor Info")
- output(3, 11, "[4] Recycler Info")
- output(1, 19, "[E] Exit [V] View Current")
- while(true) do
- event, char = os.pullEvent()
- if(event == "char" or event == "pda_char") then
- if(char == "1") then
- maceratorInfo()
- elseif(char == "2") then
- furnaceInfo()
- elseif(char == "3") then
- extractorInfo()
- elseif(char == "4") then
- recyclerInfo()
- elseif(char == "v") then
- viewMachine()
- end
- end
- end
- end
- os.loadAPI("ocs/apis/sensor")
- MACsensor = sensor.wrap("back:orange")
- FURsensor = sensor.wrap("back:lime")
- EXTsensor = sensor.wrap("back:purple")
- RECsensor = sensor.wrap("back:cyan")
- POSsensor = sensor.wrap("back:black")
- MACloc = {"-6,2,3", "-6,2,0", "-6,2,-3", "-4,2,-5", "-1,2,-5", "2,2,-5", "5,2,-5"}
- MACREloc = {"-6,3,3", "-6,3,0", "-6,3,-3", "-4,3,-5", "-1,3,-5", "2,3,-5", "5,3,-5"}
- FURloc = {"-4,2,-5", "-1,2,-5", "2,2,-5", "4,2,-3", "4,2,0", "4,2,-3"}
- FURREloc = {"-4,3,-5", "-1,3,-5", "2,3,-5", "4,3,-3", "4,3,0", "4,3,-3"}
- EXTloc = {"-2,2,3", "-2,2,0", "-2,2,-3"}
- EXTREloc = {"-2,3,3", "-2,3,0", "-2,3,-3"}
- RECloc = {"2,2,-3", "2,2,0", "2,2,3"}
- RECREloc = {"2,3,-3", "2,3,0", "2,3,3"}
- MACpos = {"-12,2,-4", "-12,2,-7", "-12,2,-10", "-10,2,-12", "-7,2,-12", "-4,2,-12", "-1,=2,-12"}
- FURpos = {"4,2,-12", "7,2,-12", "10,2,-12", "12,2,-10", "12,2,-7", "12,2,-4"}
- EXTpos = {"-12,2,9", "-12,2,6", "-12,2,3"}
- RECpos = {"12,2,2", "12,2,5", "12,2,8"}
- mainMenu()
Advertisement
Add Comment
Please, Sign In to add comment