Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- c= require("component")
- computer= require("computer")
- event= require("event")
- os= require("os")
- term = require("term")
- gpu=c.gpu
- s=c.geolyzer
- function intro()
- print("Нажмите пробел для сканирования")
- print("Нажмите q для выхода")
- print("Нажмите с для очистки экрана")
- print("Область сканирования 20 блоков на север")
- end
- function scann()
- --сканирует область в 20 блоков от игрока в сторону севера.
- local cx,cy=1,1
- local onThatX=0;--количество ресурсов для данного столбца. Используется для отрисовки глубины копки для нового
- local maxy=1;--положение курсора по окончании сканирования
- for x=1,20 do
- gpu.set(cx,cy,tostring(x));--текущий столбец
- data=s.scan(x,0);-- х инкриментируется до 20, у=0 ширина сканирования 1.
- local t=0;--"табулятор" для двухсимвольной глубины.
- if x>9 then t=1 end
- for d=1,32 do
- if data[d]>2 then
- -- в data записаны плотности блоков. >2 означает сообщать о блоках с плотностью более 2.
- -- Весь диапазон от 0 до 99. 99 это вроде игрок. Все ресурсы примерно одинаковой плотности в районе 3.
- computer.beep(2000,0.1)
- if onThatX>0 then
- cy=cy+1
- if (32-d)>9 and t==0 then t=1 end;--смещаем курсор для печати на один столбец дальше из-за цифт больше 9.
- if cy<15 then
- gpu.set(cx,cy,tostring(math.floor(32-d)));--Печатает глубину на которую нужно копать вниз относительно начальной высоты игрока.
- else
- -- для 80*15 экрана. Для больших экранов можно изменить и убрать.
- gpu.set(cx,15,tostring(math.floor(32-d)))
- end
- end
- onThatX=onThatX+1
- end
- end
- if t==1 then cx=cx+2 else cx=cx+1 end;t=0
- if cy>maxy then maxy=cy end;--положение курсора при продолжениие печати о "нажмите enter для продолжения".
- cy=1
- onThatY=0;--обнуляем количество ресурсов для текущего столбца.
- end
- term.setCursor(1,maxy)
- term.write("нажмите enter для продолжения")
- io.read()
- term.clear()
- intro()
- end
- intro()
- while true do
- _,_,key1,key2=event.pull("key_down")
- if key2==57 then term.clear();scann()
- elseif key2==46 then term.clear();intro()
- elseif key2==16 then term.clear();os.exit()
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement