SHOW:
|
|
- or go back to the newest paste.
1 | dial = peripheral.wrap("ep_dialling_device_2") | |
2 | monitor = peripheral.wrap("monitor_1") | |
3 | controller = peripheral.wrap("ep_controller_1") | |
4 | portalActive = false | |
5 | locationCount = 0 | |
6 | ||
7 | function update() | |
8 | portalActive = controller.isPortalActive() | |
9 | locationCount = dial.getStoredCount() | |
10 | end | |
11 | ||
12 | function drawScreen() | |
13 | if portalActive then | |
14 | monitor.setBackgroundColor(colors.green) | |
15 | monitor.clear() | |
16 | monW, monH = monitor.getSize() | |
17 | - | monitor.setCursorPos(monW / 2 - string.len("Terminate") / 2, monH / 2) |
17 | + | monitor.setCursorPos(monW / 2 - string.len("Closing in...5") / 2, monH / 2) |
18 | - | monitor.write("Terminate") |
18 | + | i = 5 |
19 | while i > 0 do | |
20 | monitor.clear() | |
21 | monitor.setCursorPos(monW / 2 - string.len("Closing in...5") / 2, monH / 2) | |
22 | monitor.write("Closing in..."..i) | |
23 | i = i - 1 | |
24 | sleep(1) | |
25 | end | |
26 | dial.terminate() | |
27 | portalActive = false | |
28 | drawScreen() | |
29 | else | |
30 | monitor.setBackgroundColor(colors.black) | |
31 | monitor.clear() | |
32 | ||
33 | if (locationCount - 1 > 0) then | |
34 | for i = 1, locationCount do | |
35 | monitor.setCursorPos(1, i) | |
36 | ||
37 | if (i % 2 == 0) then | |
38 | monitor.setBackgroundColor(colors.gray) | |
39 | else | |
40 | monitor.setBackgroundColor(colors.lightGray) | |
41 | end | |
42 | ||
43 | name = dial.getStoredName(i - 1) | |
44 | monW, monH = monitor.getSize() | |
45 | ||
46 | monitor.write(name) | |
47 | k = string.len(name) | |
48 | ||
49 | while (k < monW) do | |
50 | monitor.write(" ") | |
51 | k = k + 1 | |
52 | end | |
53 | ||
54 | end | |
55 | else | |
56 | monitor.setCursorPos(1, 1) | |
57 | monitor.write("No Entries") | |
58 | end | |
59 | end | |
60 | end | |
61 | ||
62 | function handleInput() | |
63 | event, side, posX, posY = os.pullEvent("monitor_touch") | |
64 | ||
65 | if portalActive then | |
66 | dial.terminate() | |
67 | else | |
68 | if (posY <= locationCount) then | |
69 | dial.dialStored(posY - 1) | |
70 | end | |
71 | end | |
72 | end | |
73 | ||
74 | while true do | |
75 | update() | |
76 | drawScreen() | |
77 | handleInput() | |
78 | end |