Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- m = peripheral.wrap("top")
- w,h = m.getSize()
- w = w+1
- h = h+1
- col = { ["white"]=1, ["orange"]=2, ["magenta"]=4, ["lightblue"]=8, ["yellow"]=16, ["lime"]=32, ["pink"]=64, ["gray"]=128, ["lightgray"]=256, ["cyan"]=512, ["purple"]=1024, ["blue"]=2048, ["brown"]=4096, ["green"]=8192, ["red"]=16384, ["black"]=32768 }
- active = false
- timeleft = 0
- function swrite(str,x,y,color)
- m.setCursorPos(x,y)
- m.setTextColor(col[color])
- m.write(str)
- end
- function drawbox(str,x1,x2,y1,y2,strcol,color)
- m.setCursorPos(x1,y1)
- m.setBackgroundColor(col[color])
- m.setTextColor(col[strcol])
- local bw = x2-x1
- local bh = y2-y1
- local bstr = " "
- while #bstr < bw do
- bstr = bstr.." "
- end
- for i=1,bh do
- m.setCursorPos(x1,y1+i-1)
- m.write(bstr)
- end
- m.setCursorPos(x1+bw/2-#str/2,y1+bh/2)
- m.write(str)
- m.setBackgroundColor(col["black"])
- return { [1]=x1, [2]=x2, [3]=y1, [4]=y2 }
- end
- function press(but)
- if event == "monitor_touch" then
- if pr2 >= but[1] and pr2 < but[2] and pr3 >= but[3] and pr3 < but[4] then
- return true
- else
- return false
- end
- end
- end
- function drawbackground(str,strcol,color)
- drawbox("",1,w,1,h,strcol,color)
- drawbox("",2,w-1,2,h-1,"black","black")
- drawbox(str,1,w,1,2,strcol,color)
- end
- function drawMenu()
- m.clear()
- drawbackground("Fair's Miningbore control","black","white")
- drawbox("Pick time active",4,w-3,3,3,"white","black")
- five = drawbox("5 min",4,w-3,5,8,"black","green")
- onefive = drawbox("15 min",4,w-3,10,13,"black","green")
- threezero = drawbox("30 min",4,w-3,15,18,"black","green")
- sixzero = drawbox("60 min",4,w-3,20,23,"black","green")
- end
- function drawTimer()
- m.clear()
- drawbackground("Fair's Miningbore control","black","white")
- drawbox("Timer active.",4,w-3,3,3,"white","black")
- drawbox("Seconds left:",4,w-3,5,5,"white","black")
- drawbox(tostring(timeleft),4,w-3,6,6,"green","black")
- cancel = drawbox("Cancel",4,w-3,10,13,"black","red")
- end
- drawMenu()
- while true do
- event,pr1,pr2,pr3 = os.pullEvent()
- if active then
- rs.setOutput("right",true)
- if press(cancel) or timeleft == 0 then
- rs.setOutput("right",false)
- active = false
- timeleft = 0
- drawMenu()
- end
- else
- rs.setOutput("right",false)
- if press(five) then
- timeleft = 300
- os.startTimer(1)
- drawTimer()
- active = true
- elseif press(onefive) then
- timeleft = 900
- os.startTimer(1)
- drawTimer()
- active = true
- elseif press(threezero) then
- timeleft = 1800
- os.startTimer(1)
- drawTimer()
- active = true
- elseif press(sixzero) then
- timeleft = 3600
- os.startTimer(1)
- drawTimer()
- active = true
- end
- end
- if event == "timer" and timeleft > 0 then
- timeleft = timeleft - 1
- drawTimer()
- os.startTimer(1)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment