Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local side = "top"
- local mon = peripheral.find("monitor")
- local function fill(colr) -- заполняет к ебеням всё, что видит указанным цветом
- mon.setBackgroundColor(colr)
- mon.clear()
- end
- local function draw(startX,startY,endX,endY,colr) --рисует прямоугольник от и до указанных координат
- mon.setBackgroundColor(colr)
- for xcord=startX, endX do
- for ycord=startY, endY do
- mon.setCursorPos(xcord, ycord) mon.write(" ")
- end
- end
- end
- local function bar(xcord,ycord,width,min,max,bgclr) -- рисует прогресс-бар, по координатам x,y указанной ширины и цвета
- mon.setBackgroundColor(bgclr)
- mon.setTextColour(0x8000)
- for point=1, width do -- рисуем пустую шкалу
- mon.setCursorPos(xcord-1+point,ycord) mon.write("\143")
- end
- local wdth = math.floor(width/(max/min)) -- считаем заполнение из width, min и max
- mon.setTextColour(0x1)
- for point=1,wdth do -- рисуем заполненный участок шкалы
- mon.setCursorPos(xcord-1+point,ycord) mon.write("\143")
- end
- end
- mon.setTextScale(0.5)
- fill(0x80) -- чистим экран
- draw(3,1,13,1,0x8000) -- рисуем чёлку сверху и пишем функциональное название софтины
- mon.setCursorPos(5, 1) mon.setTextColour(0x1) mon.write("Status:")
- draw(6,10,10,10,0x200) -- дырка внизу интерфейса
- draw(1,3,15,9,0x100) -- заполняем фон для тушки интерфейса
- mon.setTextColour(0x20) mon.setCursorPos(1, 4) mon.write("I\187")
- mon.setTextColour(0x2) mon.setCursorPos(1, 8) mon.write("O\171")
- while true do
- local comp = peripheral.wrap(side)
- if comp ~= nil then
- info = comp.list()
- -- пишем сколько барахла уже готово
- if info[2] ~= nil then mon.setBackgroundColor(0x200) mon.setTextColour(0x8000) mon.setCursorPos(7, 10) mon.write("x"..info[2]["count"])
- else mon.setBackgroundColor(0x200) mon.setTextColour(0x8000) mon.setCursorPos(7, 10) mon.write("x0 ") end
- -- а тут мы рисуем шкалу и циферки количества блоков внутри штуки
- if info[1] ~= nil then
- if info[1]["count"]<10 then mon.setBackgroundColor(0x100) mon.setCursorPos(1, 6) mon.write(" "..info[1]["count"] .."/"..64)
- else mon.setBackgroundColor(0x100) mon.setCursorPos(1, 6) mon.write(info[1]["count"] .."/"..64) end
- bar(7,6,9,info[1]["count"],64,0x100)
- mon.setTextColour(0x1) mon.setCursorPos(4, 4) mon.write(string.match(info[1]["name"], ':(.*)'))
- -- если нихуя не осталось, не даём программе сломаться
- else
- mon.setBackgroundColor(0x100) mon.setCursorPos(1, 6) mon.write(" ".. 0 .."/"..64)
- bar(7,6,9,0,64,0x100)
- mon.setTextColour(0x1) mon.setCursorPos(4, 4) mon.write(" ")
- end
- if info[2] ~= nil then
- mon.setTextColour(0x1) mon.setCursorPos(4, 8) mon.write(string.match(info[2]["name"], ':(.*)'))
- else
- mon.setTextColour(0x1) mon.setCursorPos(4, 8) mon.write(" ")
- end
- end
- os.sleep(0.5)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement