View difference between Paste ID: q23Kna5x and wrxi0726
SHOW: | | - or go back to the newest paste.
1
--Requirements
2
local component = require("component")
3
local gpu = component.gpu
4
local gui = require("gui")
5
--Configuration junk
6
local args = {...}
7
local prgName = "Nanomachine Control v0.01a"
8
local version = gui.Version()
9
local port = 14 --port to communicate to your nanomachines on.
10
11
if args[1] == "-h" then
12
  print("Useage: -h : See this help text.")
13
  print("        -s : Skip Nanomachine innitializationn")
14
  os.exit()
15
end
16
17
--Initialize modem and speak to the nanomachines.
18
local modem = component.modem
19
	modem.open(port)
20
	modem.broadcast(port, "nanomachines", "setResponsePort", port)
21
22
local function send(command, ...)
23
  component.modem.broadcast(port, "nanomachines", command, ...)
24
end
25
26
--Button Callbacks from myGui
27
28
function exitCallback(guiID, id)
29
  local result = gui.getYesNo("", "Do you really want to exit?", "")
30
  if result == true then
31
    gui.exit()
32
  end
33
  gui.displayGui(myGui)
34
end
35
36
function i01_OnCallback(guiID, id)
37
	gui.setEnable(guiID, id, false)
38
	gui.setEnable(guiID, i01_Off, true)
39
	send("setInput", 1, true)
40
end
41
42
function i01_OffCallback(guiID, id)
43
	gui.setEnable(guiID, id, false)
44
	gui.setEnable(guiID, i01_On, true)
45
	send("setInput", 1, false)
46
end
47
48
function i02_OnCallback(guiID, id)
49
	gui.setEnable(guiID, id, false)
50
	gui.setEnable(guiID, i02_Off, true)
51
	send("setInput", 2, true)
52
end
53
54
function i02_OffCallback(guiID, id)
55
	gui.setEnable(guiID, id, false)
56
	gui.setEnable(guiID, i02_On, true)
57
	send("setInput", 2, false)
58
end
59
60
function i03_OnCallback(guiID, id)
61
	gui.setEnable(guiID, id, false)
62
	gui.setEnable(guiID, i03_Off, true)
63
	send("setInput", 3, true)
64
end
65
66
function i03_OffCallback(guiID, id)
67
	gui.setEnable(guiID, id, false)
68
	gui.setEnable(guiID, i03_On, true)
69
	send("setInput", 3, false)
70
end
71
72
function i04_OnCallback(guiID, id)
73
	gui.setEnable(guiID, id, false)
74
	gui.setEnable(guiID, i04_Off, true)
75
	send("setInput", 4, true)
76
end
77
78
function i04_OffCallback(guiID, id)
79
	gui.setEnable(guiID, id, false)
80
	gui.setEnable(guiID, i04_On, true)
81
	send("setInput", 4, false)
82
end
83
84
function i05_OnCallback(guiID, id)
85
	gui.setEnable(guiID, id, false)
86
	gui.setEnable(guiID, i05_Off, true)
87
	send("setInput", 5, true)
88
end
89
90
function i05_OffCallback(guiID, id)
91
	gui.setEnable(guiID, id, false)
92
	gui.setEnable(guiID, i05_On, true)
93
	send("setInput", 5, false)
94
end
95
96
function i06_OnCallback(guiID, id)
97
	gui.setEnable(guiID, id, false)
98
	gui.setEnable(guiID, i06_Off, true)
99
	send("setInput", 6, true)
100
end
101
102
function i06_OffCallback(guiID, id)
103
	gui.setEnable(guiID, id, false)
104
	gui.setEnable(guiID, i06_On, true)
105
	send("setInput", 6, false)
106
end
107
108
function i07_OnCallback(guiID, id)
109
	gui.setEnable(guiID, id, false)
110
	gui.setEnable(guiID, i07_Off, true)
111
	send("setInput", 7, true)
112
end
113
114
function i07_OffCallback(guiID, id)
115
	gui.setEnable(guiID, id, false)
116
	gui.setEnable(guiID, i07_On, true)
117
	send("setInput", 7, false)
118
end
119
120
function i08_OnCallback(guiID, id)
121
	gui.setEnable(guiID, id, false)
122
	gui.setEnable(guiID, i08_Off, true)
123
	send("setInput", 8, true)
124
end
125
126
function i08_OffCallback(guiID, id)
127
	gui.setEnable(guiID, id, false)
128
	gui.setEnable(guiID, i08_On, true)
129
	send("setInput", 8, false)
130
end
131
132
function i09_OnCallback(guiID, id)
133
	gui.setEnable(guiID, id, false)
134
	gui.setEnable(guiID, i09_Off, true)
135
	send("setInput", 9, true)
136
end
137
138
function i09_OffCallback(guiID, id)
139
	gui.setEnable(guiID, id, false)
140
	gui.setEnable(guiID, i09_On, true)
141
	send("setInput", 9, false)
142
end
143
144
function i10_OnCallback(guiID, id)
145
	gui.setEnable(guiID, id, false)
146
	gui.setEnable(guiID, i10_Off, true)
147
	send("setInput", 10, true)
148
end
149
150
function i10_OffCallback(guiID, id)
151
	gui.setEnable(guiID, id, false)
152
	gui.setEnable(guiID, i10_On, true)
153
	send("setInput", 10, false)
154
end
155
156
function i11_OnCallback(guiID, id)
157
	gui.setEnable(guiID, id, false)
158
	gui.setEnable(guiID, i11_Off, true)
159
	send("setInput", 11, true)
160
end
161
162
function i11_OffCallback(guiID, id)
163
	gui.setEnable(guiID, id, false)
164
	gui.setEnable(guiID, i11_On, true)
165
	send("setInput", 11, false)
166
end
167
168
function i12_OnCallback(guiID, id)
169
	gui.setEnable(guiID, id, false)
170
	gui.setEnable(guiID, i12_Off, true)
171
	send("setInput", 12, true)
172
end
173
174
function i12_OffCallback(guiID, id)
175
	gui.setEnable(guiID, id, false)
176
	gui.setEnable(guiID, i12_On, true)
177
	send("setInput", 12, false)
178
end
179
180
function i13_OnCallback(guiID, id)
181
	gui.setEnable(guiID, id, false)
182
	gui.setEnable(guiID, i13_Off, true)
183
	send("setInput", 13, true)
184
end
185
186
function i13_OffCallback(guiID, id)
187
	gui.setEnable(guiID, id, false)
188
	gui.setEnable(guiID, i13_On, true)
189
	send("setInput", 13, false)
190
end
191
192
function i14_OnCallback(guiID, id)
193
	gui.setEnable(guiID, id, false)
194
	gui.setEnable(guiID, i14_Off, true)
195
	send("setInput", 14, true)
196
end
197
198
function i14_OffCallback(guiID, id)
199
	gui.setEnable(guiID, id, false)
200
	gui.setEnable(guiID, i14_On, true)
201
	send("setInput", 14, false)
202
end
203
204
function i15_OnCallback(guiID, id)
205
	gui.setEnable(guiID, id, false)
206
	gui.setEnable(guiID, i15_Off, true)
207
	send("setInput", 15, true)
208
end
209
210
function i15_OffCallback(guiID, id)
211
	gui.setEnable(guiID, id, false)
212
	gui.setEnable(guiID, i15_On, true)
213
	send("setInput", 15, false)
214
end
215
216
function i16_OnCallback(guiID, id)
217
	gui.setEnable(guiID, id, false)
218
	gui.setEnable(guiID, i16_Off, true)
219
	send("setInput", 16, true)
220
end
221
222
function i16_OffCallback(guiID, id)
223
	gui.setEnable(guiID, id, false)
224
	gui.setEnable(guiID, i16_On, true)
225
	send("setInput", 16, false)
226
end
227
228
function i17_OnCallback(guiID, id)
229
	gui.setEnable(guiID, id, false)
230
	gui.setEnable(guiID, i17_Off, true)
231
	send("setInput", 17, true)
232
end
233
234
function i17_OffCallback(guiID, id)
235
	gui.setEnable(guiID, id, false)
236
	gui.setEnable(guiID, i17_On, true)
237
	send("setInput", 17, false)
238
end
239
240
function i18_OnCallback(guiID, id)
241
	gui.setEnable(guiID, id, false)
242
	gui.setEnable(guiID, i18_Off, true)
243
	send("setInput", 18, true)
244
end
245
246
function i18_OffCallback(guiID, id)
247
	gui.setEnable(guiID, id, false)
248
	gui.setEnable(guiID, i18_On, true)
249
	send("setInput", 18, false)
250
end
251
252
function aboutCallback(guiID, id)
253
	local msg1 = "Nanomachine Control"
254
	local msg2 = "Version 0.01a"
255
	local msg3 = "By RandomRedMage"
256
	gui.showMsg(msg1, msg2, msg3)
257
	gui.displayGui(myGui)
258
end
259
260
function initOver(guiID, id)
261
	gui.clearScreen()
262
	gui.displayGui(myGui)
263
	gui.setTop(prgName)
264
	gui.setBottom("libGui v" .. version)
265
	while true do
266
		gui.runGui(myGui)
267
	end
268
end
269
270
--GUI features.
271
272
myGui = gui.newGui(2, 2, 78, 23, true, "Main")
273
274
nanoInfo = gui.newFrame(myGui, 2, 1, 31, 11, "Information.")
275
label1 = gui.newLabel(myGui, 4, 3, "  Nanomachines son, you can")
276
label2 = gui.newLabel(myGui, 4, 4, "activate and deactivate the")
277
label3 = gui.newLabel(myGui, 4, 5, "different  index  positions")
278
label4 = gui.newLabel(myGui, 4, 6, "to aquire different effects")
279
label5 = gui.newLabel(myGui, 4, 7, "ranging from Night Vision, ")
280
label6 = gui.newLabel(myGui, 4, 8, "to fire resistence and more")
281
label7 = gui.newLabel(myGui, 4, 9, " use at own risk.")
282
283
i01_On = gui.newButton(myGui, 46, 1, "Input 01 ON", i01_OnCallback)
284
i01_Off = gui.newButton(myGui, 60, 1, "Input 01 OFF", i01_OffCallback)
285
gui.setEnable(myGui, i01_Off, false)
286
287
i02_On = gui.newButton(myGui, 46, 2, "Input 02 ON", i02_OnCallback)
288
i02_Off = gui.newButton(myGui, 60, 2, "Input 02 OFF", i02_OffCallback)
289
gui.setEnable(myGui, i02_Off, false)
290
291
i03_On = gui.newButton(myGui, 46, 3, "Input 03 ON", i03_OnCallback)
292
i03_Off = gui.newButton(myGui, 60, 3, "Input 03 OFF", i03_OffCallback)
293
gui.setEnable(myGui, i03_Off, false)
294
295
i04_On = gui.newButton(myGui, 46, 4, "Input 04 ON", i04_OnCallback)
296
i04_Off = gui.newButton(myGui, 60, 4, "Input 04 OFF", i04_OffCallback)
297
gui.setEnable(myGui, i04_Off, false)
298
299
i05_On = gui.newButton(myGui, 46, 5, "Input 05 ON", i05_OnCallback)
300
i05_Off = gui.newButton(myGui, 60, 5, "Input 05 OFF", i05_OffCallback)
301
gui.setEnable(myGui, i05_Off, false)
302
303
i06_On = gui.newButton(myGui, 46, 6, "Input 06 ON", i06_OnCallback)
304
i06_Off = gui.newButton(myGui, 60, 6, "Input 06 OFF", i06_OffCallback)
305
gui.setEnable(myGui, i06_Off, false)
306
307
i07_On = gui.newButton(myGui, 46, 7, "Input 07 ON", i07_OnCallback)
308
i07_Off = gui.newButton(myGui, 60, 7, "Input 07 OFF", i07_OffCallback)
309
gui.setEnable(myGui, i07_Off, false)
310
311
i08_On = gui.newButton(myGui, 46, 8, "Input 08 ON", i08_OnCallback)
312
i08_Off = gui.newButton(myGui, 60, 8, "Input 08 OFF", i08_OffCallback)
313
gui.setEnable(myGui, i08_Off, false)
314
315
i09_On = gui.newButton(myGui, 46, 9, "Input 09 ON", i09_OnCallback)
316
i09_Off = gui.newButton(myGui, 60, 9, "Input 09 OFF", i09_OffCallback)
317
gui.setEnable(myGui, i09_Off, false)
318
319
i10_On = gui.newButton(myGui, 46, 10, "Input 10 ON", i10_OnCallback)
320
i10_Off = gui.newButton(myGui, 60, 10, "Input 10 OFF", i10_OffCallback)
321
gui.setEnable(myGui, i10_Off, false)
322
323
i11_On = gui.newButton(myGui, 46, 11, "Input 11 ON", i11_OnCallback)
324
i11_Off = gui.newButton(myGui, 60, 11, "Input 11 OFF", i11_OffCallback)
325
gui.setEnable(myGui, i11_Off, false)
326
327
i12_On = gui.newButton(myGui, 46, 12, "Input 12 ON", i12_OnCallback)
328
i12_Off = gui.newButton(myGui, 60, 12, "Input 12 OFF", i12_OffCallback)
329
gui.setEnable(myGui, i12_Off, false)
330
331
i13_On = gui.newButton(myGui, 46, 13, "Input 13 ON", i13_OnCallback)
332
i13_Off = gui.newButton(myGui, 60, 13, "Input 13 OFF", i13_OffCallback)
333
gui.setEnable(myGui, i13_Off, false)
334
335
i14_On = gui.newButton(myGui, 46, 14, "Input 14 ON", i14_OnCallback)
336
i14_Off = gui.newButton(myGui, 60, 14, "Input 14 OFF", i14_OffCallback)
337
gui.setEnable(myGui, i14_Off, false)
338
339
i15_On = gui.newButton(myGui, 46, 15, "Input 15 ON", i15_OnCallback)
340
i15_Off = gui.newButton(myGui, 60, 15, "Input 15 OFF", i15_OffCallback)
341
gui.setEnable(myGui, i15_Off, false)
342
343
i16_On = gui.newButton(myGui, 46, 16, "Input 16 ON", i16_OnCallback)
344
i16_Off = gui.newButton(myGui, 60, 16, "Input 16 OFF", i16_OffCallback)
345
gui.setEnable(myGui, i16_Off, false)
346
347
i17_On = gui.newButton(myGui, 46, 17, "Input 17 ON", i17_OnCallback)
348
i17_Off = gui.newButton(myGui, 60, 17, "Input 17 OFF", i17_OffCallback)
349
gui.setEnable(myGui, i17_Off, false)
350
351
i18_On = gui.newButton(myGui, 46, 18, "Input 18 ON", i18_OnCallback)
352
i18_Off = gui.newButton(myGui, 60, 18, "Input 18 OFF", i18_OffCallback)
353
gui.setEnable(myGui, i18_Off, false)
354
355
356
aboutButton = gui.newButton(myGui, 56, 21, "About", aboutCallback)
357
exitButton = gui.newButton(myGui, 65, 21, "Exit", exitCallback)
358
359
initGui = gui.newGui(2, 2, 78, 23, true)
360
initInfo = gui.newFrame(initGui, 28, 9, 22, 5, "Loading...")
361
initProgress = gui.newProgress(initGui, "center", 11, 18, 18, 0, initOver, true)
362
363
-- Starting Point
364
365
gui.clearScreen()
366
gui.setTop(prgName)
367
gui.setBottom("libGui v" .. version)
368
local counter = 0
369
370
if args[1] == "-s" then
371
  counter = 18
372
end
373
374
while counter <=18 do
375
	gui.runGui(initGui)
376
	counter = counter + 1
377
	send("setInput", counter, false)
378
	gui.setValue(initGui, initProgress, counter)
379
	os.sleep(1)
380
end