Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local side = "top"
- local comp = peripheral.wrap(side)
- local mon = peripheral.find("monitor")
- local levels = {{"work",0x400},{"test",0x4},{"hub",0x40}}
- local crds = {2,2,9,1} -- координаты отрисовки списка этажей
- -- startX,startY,width,height -- положение по Х и Y, ширина и высота
- local level = 1
- 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 levelDraw(startX,startY,width,height)
- local lvlsCount = #levels
- for i=0, lvlsCount-1 do
- draw(startX,startY+(i*3),startX+width,(startY+height)+(i*3),levels[i+1][2])
- for y=0, i do
- mon.setCursorPos(startX+y, startY+(i*3)) mon.setTextColour(0x8000) mon.write("\138")
- end
- mon.setCursorPos(startX+1, startY+1+(i*3)) mon.setTextColour(0x1) mon.write(levels[i+1][1])
- end
- end
- local function elevatorIcon(level)
- draw(13,2,14,9,0x8000)
- mon.setTextColour(0x1)
- for i=0, level do
- mon.setCursorPos(13,2+i) mon.setTextColour(0x1) mon.write("\136") mon.setCursorPos(14,2+i) mon.write("\145")
- end
- mon.setTextColour(0x1000) mon.setCursorPos(13,2+level) mon.write("\8") mon.setCursorPos(14,2+level) mon.write("\8")
- end
- mon.setTextScale(0.5)
- fill(0x80) -- чистим экран
- mon.setCursorPos(5, 1) mon.setTextColour(0x1) mon.write("Elevator")
- levelDraw(crds[1],crds[2],crds[3],crds[4])
- draw(13,2,14,9,0x8000)
- while true do
- local event, side, xclick, yclick = os.pullEvent("monitor_touch")
- local lvlsCount = #levels
- if (xclick >=crds[1]) and (xclick<=crds[1]+crds[3]) then
- for i=0, lvlsCount do
- if yclick>=(crds[2]+(i*3)) and (yclick<=((crds[2]+crds[4])+(i*3))) then
- elevatorIcon(1+(3*i))
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment