skypop

look (pocket)

Sep 11th, 2016
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. term.setBackgroundColor(colors.black)
  2. term.setTextColor(colors.white)
  3.  
  4. if not os.loadAPI("apis/lip")
  5. or not lip then
  6.   error("Cant find World Interface",0)
  7. else
  8.   wi = lip.WorldInterface
  9. end
  10.  
  11. local x,y,z = gps.locate()
  12.  
  13. x = math.floor(x)
  14. y = math.floor(y)
  15. z = math.floor(z)
  16.  
  17. term.setCursorPos(1,1)
  18. term.clear()
  19. term.setCursorBlink(true)
  20. term.write("X=")
  21. x = tonumber(read(nil,{tonumber(x)}))
  22. sleep(.2)
  23. term.setCursorPos(1,2)
  24. term.write("Y=")
  25. y = tonumber(read(nil,{tonumber(y)}))
  26. sleep(.2)
  27. term.setCursorPos(1,3)
  28. term.write("Z=")
  29. z = tonumber(read(nil,{tonumber(z)}))
  30. sleep(.2)
  31. term.setCursorBlink(false)
  32.  
  33. local function displayHelp()
  34.   term.setBackgroundColor(colors.black)
  35.   term.setTextColor(colors.white)
  36.   term.setCursorPos(1,1)
  37.   term.clear()
  38.   print(string.format([[Controls:
  39. %s West  (-x) [right]
  40. %s North (-z) [up]
  41. %s East  (+x) [left]
  42. %s South (+z) [down]
  43. %s Down  (-y) [pageDown]
  44. %s Up    (+y) [pageUp]
  45. %s
  46. R Refresh
  47. H Help
  48. Q Quit]],
  49. string.char(27),
  50. string.char(24),
  51. string.char(26),
  52. string.char(25),
  53. string.char(31),
  54. string.char(30),
  55. string.rep(string.char(140),25)))
  56.   sleep(.5)
  57.   os.pullEvent("key")
  58.   sleep(.2)
  59. end
  60.  
  61. local function pos()
  62.   term.setCursorPos(1,1)
  63.   term.clearLine()
  64.   term.write(string.format([[X:%s, Y:%s, Z:%s]],tostring(x),tostring(y),tostring(z)))
  65.   term.setCursorPos(1,2)
  66. end
  67. local getDatatags = false
  68. while true do
  69.   term.setBackgroundColor(colors.black)
  70.   term.setTextColor(colors.white)
  71.   term.clear()
  72.   pos()
  73.   local o = getDatatags and wi.getBlockDatatags(x,y,z) or wi.getBlockInfos(x,y,z)
  74.   textutils.pagedPrint(textutils.serialise(o))
  75.   if getDatatags then
  76.     print(string.rep(string.char(140),25))
  77.     sleep(.5)
  78.     os.pullEvent("key")
  79.     sleep(.3)
  80.     term.clear()
  81.     pos()
  82.     getDatatags = false
  83.   end
  84.   while true do
  85.     sleep(.1)
  86.     local e,p = os.pullEvent("key")
  87.     --refresh
  88.     if p==keys.r or p==keys.enter then
  89.       break
  90.     elseif p==keys.up then
  91.       z = z-1
  92.       pos()
  93.     elseif p==keys.down then
  94.       z = z+1
  95.       pos()
  96.     elseif p==keys.right then
  97.       x = x+1
  98.       pos()
  99.     elseif p==keys.left then
  100.       x = x-1
  101.       pos()
  102.     elseif p==keys.pageDown then
  103.       y = math.max(1,y-1)
  104.       pos()
  105.     elseif p==keys.pageUp then
  106.       y = y+1
  107.       pos()
  108.     elseif p==keys.numPadAdd then
  109.       getDatatags = true
  110.       break
  111.     elseif p==keys.h then
  112.       displayHelp()
  113.       break
  114.     elseif p==keys.q then
  115.       sleep(.3)
  116.       error("Terminated",0)
  117.       return
  118.     end
  119.   end
  120. end
Add Comment
Please, Sign In to add comment