View difference between Paste ID: bUraSkGB and b77E4GiS
SHOW: | | - or go back to the newest paste.
1-
radar = peripheral.wrap("bottom");
1+
radar = peripheral.wrap("bottom")
2
radius = 500
3
scale = 50
4
5-
w, h = term.getSize();
5+
w, h = term.getSize()
6
7
term.clear()
8
9
function colorScreen(color)
10
  for a = 2,w-1 do
11
         for b = 1,h do
12
           paintutils.drawPixel(a,b,color)
13
         end
14
  end
15
end
16
17
function textOut(x, y, text, fg, bg)
18
 term.setCursorPos(x, y)
19
 term.setTextColor(fg)
20
 term.setBackgroundColor(bg)
21
 term.write(text)
22
 local xt,yt = term.getCursorPos()
23
 term.setCursorPos(1, yt + 1)
24
end	
25
26
function translateXZ(oldX, oldZ, i)
27
	local x = radarX - oldX
28
	local z = radarZ - oldZ
29
	
30
 x = x / (radius / scale)
31
 z = z / (radius / scale)
32
33
 x = x + (w / 2)
34
 z = z + (h / 2)
35
36
 
37
 x = math.floor(x);
38
 z = math.floor(z);
39
 
40
	return x,z
41
end
42
43
function drawContact(x, y, z, name, color)
44
  local newX, newZ = translateXZ(x, z)
45
  
46
  paintutils.drawPixel(newX, newZ, color)
47
  textOut(newX - 3, newZ + 1, "[" .. name .. "]", colors.white, colors.black)
48
end
49
50
function scanAndDraw()
51
  if (radar.getEnergyLevel() < radius*radius) then
52
    hh = math.floor(h / 2);
53
    hw = math.floor(w / 2);
54
    
55
    paintutils.drawLine(hw - 5, hh - 1, hw + 5, hh - 1, colors.red);
56
    paintutils.drawLine(hw - 5, hh, hw + 5, hh, colors.red);
57
    textOut(hw - 4, hh,"LOW POWER", colors.white, colors.red);
58
    paintutils.drawLine(hw - 5, hh + 1, hw + 5, hh + 1, colors.red);
59
    sleep(1);
60
    
61
    return 0;
62
  end;  
63
  radar.scanRadiusW(radius);
64
  sleep(2);
65
  
66
  redraw();
67
  
68
  numResults = radar.getResultsCountW();
69
  
70
  if (numResults ~= 0) then
71
    for i = 0, numResults-1 do
72
      freq, cx, cy, cz = radar.getResultW(i);
73
      
74
      drawContact(cx, cy, cz, freq, colors.red)
75
    end
76
  end
77
  
78
  drawContact(radarX, radarY, radarZ, "RAD", colors.yellow);
79
end
80
81
function redraw()
82
   --shell.run("clear")
83
   colorScreen(colors.green)
84
   
85-
   textOut(h, 1, "= Radar v0.2 =", colors.white, colors.black)
85+
86
   
87
   textOut(h, 1, "= Q-Radar v0.1 =", colors.white, colors.black)
88
   
89
   textOut(w - 3, 1, "[X]", colors.white, colors.red)
90
   
91
   paintutils.drawLine(1, h, w, h, colors.black);
92
   textOut(4, h, "Energy: " .. radar.getEnergyLevel() .. " Eu | Scan radius: " .. radius, colors.white, colors.black)
93
end
94
95
mrun = true
96
while (mrun) do
97
 radarX = radar.getRadarX();
98
 radarY = radar.getRadarY();
99
 radarZ = radar.getRadarZ();
100
 scanAndDraw();
101-
os.run("clear");
101+
102
103
term.clear();