Advertisement
Hikooshi

Интерфейс беспроводного управления дроном (beta)

Mar 1st, 2016
364
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 46.59 KB | None | 0 0
  1. --pastebin get YKSKS5av interface
  2. local component = require("component")
  3. local modem = component.modem
  4. local navigation = component.navigation
  5. local term = require("term")
  6. local gpu = component.gpu
  7. local event = require("event")
  8. local serialization = require("serialization")
  9.  
  10.  
  11.  
  12. local port=467
  13. local a={}
  14. local a1={}
  15. local a2={}
  16. local a1plus={}
  17. local a2plus={}
  18. local activatormain=true
  19. local activatorinvent=false
  20. local dronename="Не инициализировано"
  21. local activatorsign=false
  22. local messagesign=" "
  23. local pistonword=" "
  24. local activatorinventplus=false
  25. local droneside=3
  26. local activatorinventplusstack=false
  27. local inventplusget=2
  28. local getslotstacktable={}
  29. local keys={}
  30. local internalstacktable={}
  31. local activatordrone_generator=false
  32. local swingword=" "
  33. local placeword=" "
  34. local dropword=" "
  35. local suckword=" "
  36. local drainword=" "
  37. local fillword=" "
  38. local slot_invent=3
  39. local slot_invent_count=1
  40.  
  41. modem.open(port)
  42.  
  43. function buttons(pic)
  44.  
  45. for i=1, #pic do
  46. gpu.setForeground(pic[i].color1)
  47. gpu.setBackground(pic[i].color2)
  48. if pic[i].lang == "rus" then
  49. l=(#pic[i].text/2)+2
  50. elseif pic[i].lang == "eng" then
  51. l=#pic[i].text+2
  52. end
  53. if pic[i].h == 1 and pic[i].active == true then
  54. gpu.set(pic[i].x, pic[i].y, " "..pic[i].text.." ")
  55. elseif pic[i].h>1 and pic[i].active == true then
  56. for j=1, l do gpu.set(pic[i].x+j-1, pic[i].y-1, " ") end
  57. for k=1, l do gpu.set(pic[i].x+k-1, pic[i].y+pic[i].h-2, " ") end
  58. gpu.set(pic[i].x, pic[i].y, " "..pic[i].text.." ")
  59. end
  60. gpu.setForeground(0xFFFFFF)
  61. gpu.setBackground(0x000000)
  62. end
  63.  
  64. end
  65.  
  66.  
  67.  
  68. --function button(x,y,pic,color1,color2)
  69. --gpu.setForeground(color1)
  70. --gpu.setBackground(color2)
  71. --for i=1, #pic do gpu.set(x, y+i-1, pic[i]) end
  72. --gpu.setForeground(0xFFFFFF)
  73. --gpu.setBackground(0x000000)
  74. --end
  75.  
  76.  
  77. function initialize()
  78.  
  79. modem.setStrength(1)
  80. modem.broadcast(port, "modem=component.proxy(component.list('modem')())")
  81. modem.broadcast(port, "drone=component.proxy(component.list('drone')())")
  82. --modem.broadcast(port, "computer.pullSignal(1) if drone.select(3)==3 then modem.broadcast(467, 'inventory') end if drone.selectTank(1) == 1 then modem.broadcast(467, 'tank') end computer.pullSignal(1.5) if drone.select(5) == 5 then modem.broadcast(467, 'inventory_1') end if drone.selectTank(2) == 2 then modem.broadcast(467, 'tank_1') end")
  83. modem.broadcast(port, "if drone.select(1)==1 then drone.move(0,1,0) computer.pullSignal(0.1) drone.move(0,-1,0) end")
  84. modem.broadcast(port, "if drone.select(5) == 5 then modem.broadcast(467, 'inventory') modem.broadcast(467, 'inventory_1')  end")
  85. modem.broadcast(port, "if drone.select(3) == 3 then modem.broadcast(467, 'inventory') end")
  86. modem.broadcast(port, "if drone.select(5) == 5 then modem.broadcast(467, 'inventory') modem.broadcast(467, 'inventory_1') end")
  87. modem.broadcast(port, "if drone.selectTank(1) == 1 then modem.broadcast(467, 'tank') end")
  88. modem.broadcast(port, "if drone.selectTank(2) == 2 then modem.broadcast(467, 'tank_1') end")
  89. modem.broadcast(port, "if drone.selectTank(3) == 3 then modem.broadcast(467, 'tank_2') end")
  90. modem.broadcast(port, "computer.pullSignal(3) for k,v in component.list() do modem.broadcast(467, v) end dronename=drone.name() modem.broadcast(467, dronename) computer.pullSignal(2) modem.broadcast(467, 'stop')")
  91. modem.setStrength(400)
  92. while true do
  93. local _,_,_,_,_,message=event.pull("modem")
  94. table.insert(a, message)
  95. if message=="stop" then break end
  96. end
  97. dronename=a[#a-1]
  98. for i=1, #a-1 do
  99. if a[i] == 'inventory' then
  100. pic[10].active=true
  101. for i=12, 27 do pic[i].active=true end
  102. for i=55, 66 do pic[i].active=true end
  103. swingword="Swing"
  104. placeword="Place"
  105. dropword="Drop"
  106. suckword="Suck"
  107. slot_invent_count=4
  108. end
  109. if a[i] == 'inventory_1' then
  110. for i=28, 31 do pic[i].active=true end
  111. slot_invent_count=8
  112. end
  113. if a[i] == 'tank' then
  114. pic[32].active=true
  115. for i=34, 46 do pic[i].active=true end
  116. drainword="Drain"
  117. fillword="Fill"
  118. end
  119. if a[i] == 'tank_1' then
  120. pic[47].active=true
  121. end
  122. if a[i] == 'tank_2' then
  123. pic[48].active=true
  124. end
  125. if a[i] == 'docking' then
  126. modem.broadcast(port, "docking=component.proxy(component.list('docking')())")
  127. pic[67].active=true
  128. end
  129. --if a[i] == 'redstone' then
  130. --modem.broadcast(port, "redstone=component.proxy(component.list('redstone')())")
  131. --pic[70].active=true
  132. --end
  133. if a[i] == 'inventory_controller' then
  134. modem.broadcast(port, "invcontr=component.proxy(component.list('inventory_controller')())")
  135. pic[11].active=true
  136. end
  137. if a[i] == 'tractor_beam' then
  138. modem.broadcast(port, "tractor_beam=component.proxy(component.list('tractor_beam')())")
  139. pic[84].active=true
  140. end
  141. if a[i] == 'leash' then
  142. modem.broadcast(port, "leash=component.proxy(component.list('leash')())")
  143. pic[85].active=true
  144. end
  145. if a[i] == 'sign' then
  146. modem.broadcast(port, "sign=component.proxy(component.list('sign')())")
  147. pic[89].active=true
  148. end
  149. if a[i] == 'piston' then
  150. modem.broadcast(port, "piston=component.proxy(component.list('piston')())")
  151. pistonword="Поршень"
  152. for i=90, 95 do pic[i].active=true end
  153. end
  154. if a[i] == 'generator' then
  155. modem.broadcast(port, "generator=component.proxy(component.list('generator')())")
  156. pic[96].active=true
  157. end
  158. end
  159. --for i=1, #a-1 do print(a[i]) end
  160. pic[1].active=false
  161. pic[9].active=true
  162. --print("nice")
  163. end
  164.  
  165. function quit()
  166.  
  167. term.clear()
  168.  
  169. os.exit()
  170.  
  171. end
  172.  
  173. function down()
  174. modem.broadcast(port, "drone.move(0,-1,0)")
  175. end
  176.  
  177. function up()
  178. modem.broadcast(port, "drone.move(0,1,0)")
  179. end
  180.  
  181. function forward()
  182. local navf=navigation.getFacing()
  183. if navf == 2 then
  184. modem.broadcast(port, "drone.move(0,0,-1)")
  185. elseif navf == 3 then
  186. modem.broadcast(port, "drone.move(0,0,1)")
  187. elseif navf == 4 then
  188. modem.broadcast(port, "drone.move(-1,0,0)")
  189. elseif navf == 5 then
  190. modem.broadcast(port, "drone.move(1,0,0)")
  191. end
  192. end
  193.  
  194. function back()
  195. local navb=navigation.getFacing()
  196. if navb == 2 then
  197. modem.broadcast(port, "drone.move(0,0,1)")
  198. elseif navb == 3 then
  199. modem.broadcast(port, "drone.move(0,0,-1)")
  200. elseif navb == 4 then
  201. modem.broadcast(port, "drone.move(1,0,0)")
  202. elseif navb == 5 then
  203. modem.broadcast(port, "drone.move(-1,0,0)")
  204. end
  205. end
  206.  
  207. function left()
  208. local navl=navigation.getFacing()
  209. if navl == 2 then
  210. modem.broadcast(port, "drone.move(-1,0,0)")
  211. elseif navl == 3 then
  212. modem.broadcast(port, "drone.move(1,0,0)")
  213. elseif navl == 4 then
  214. modem.broadcast(port, "drone.move(0,0,1)")
  215. elseif navl == 5 then
  216. modem.broadcast(port, "drone.move(0,0,-1)")
  217. end
  218. end
  219.  
  220. function right()
  221. local navr=navigation.getFacing()
  222. if navr == 2 then
  223. modem.broadcast(port, "drone.move(1,0,0)")
  224. elseif navr == 3 then
  225. modem.broadcast(port, "drone.move(-1,0,0)")
  226. elseif navr == 4 then
  227. modem.broadcast(port, "drone.move(0,0,-1)")
  228. elseif navr == 5 then
  229. modem.broadcast(port, "drone.move(0,0,1)")
  230. end
  231. end
  232.  
  233. function initialize_done()
  234. --gpu.set(1, 4, "Nice")
  235. end
  236.  
  237. function invent()
  238. activatormain=false
  239. activatorinvent=true
  240. term.clear()
  241. modem.broadcast(port, "for i=1, "..tostring(slot_invent_count).." do inv1=drone.count(i) modem.broadcast(467, inv1) end modem.broadcast(467, 'stop') for i=1, "..tostring(slot_invent_count).." do inv2=drone.space(i) modem.broadcast(467, inv2) end modem.broadcast(467, 'done')")
  242. while true do
  243. local _,_,_,_,_,messageinv=event.pull("modem")
  244. table.insert(a1, messageinv)
  245. if messageinv == 'stop' then break end
  246. end
  247. while true do
  248. local _,_,_,_,_,messageinv1=event.pull("modem")
  249. table.insert(a2, messageinv1)
  250. if messageinv1 == 'done' then break end
  251. end
  252. for i=1, #a1-1 do
  253. gpu.set(1, 6+i, 'Слот'..tostring(i)..':')
  254. gpu.set(7, 6+i, tostring(a1[i]))
  255. gpu.set(9, 6+i, '/')
  256. end
  257. a1={}
  258. for i=1, #a2-1 do
  259. gpu.set(10, 6+i, tostring(a2[i]))
  260. end
  261. a2={}
  262. while activatorinvent do
  263. buttons(picinv)
  264. search(picinv)
  265. end
  266. end
  267.  
  268. function invent_plus()
  269. activatormain=false
  270. activatorinventplus=true
  271. term.clear()
  272. modem.broadcast(port, "for i=1, "..tostring(slot_invent_count).." do inv1=drone.count(i) modem.broadcast(467, inv1) end modem.broadcast(467, 'stop') computer.pullSignal(1) for i=1, "..tostring(slot_invent_count).." do inv2=drone.space(i) modem.broadcast(467, inv2) end modem.broadcast(467, 'done')")
  273. while true do
  274. local _,_,_,_,_,messageinventoryplus1=event.pull("modem")
  275. table.insert(a1plus, messageinventoryplus1)
  276. if messageinventoryplus1 == 'stop' then break end
  277. end
  278. while true do
  279. local _,_,_,_,_,messageinventoryplus2=event.pull("modem")
  280. table.insert(a2plus, messageinventoryplus2)
  281. if messageinventoryplus2 == 'done' then break end
  282. end
  283. for i=1, #a1plus-1 do
  284. gpu.set(1, 2+i, 'Слот'..tostring(i)..':')
  285. gpu.set(7, 2+i, tostring(a1plus[i]))
  286. gpu.set(9, 2+i, '/')
  287. end
  288. a1plus={}
  289. for i=1, #a2plus-1 do
  290. gpu.set(10, 2+i, tostring(a2plus[i]))
  291. end
  292. a2plus={}
  293. gpu.setForeground(0x000000)
  294. gpu.setBackground(0xFFFFFF)
  295. gpu.set(14, 1, 'Размер инвентаря')
  296. gpu.set(14, 2, '                ')
  297. gpu.setForeground(0xFFFFFF)
  298. gpu.setBackground(0x000000)
  299. gpu.set(11, 20, "<")
  300. gpu.set(14, 3, "Север:")
  301. gpu.set(14, 4, "Юг:")
  302. gpu.set(14, 5, "Восток:")
  303. gpu.set(14, 6, "Запад:")
  304. gpu.set(14, 7, "Верх:")
  305. gpu.set(14, 8, "Низ:")
  306. while activatorinventplus do
  307. buttons(picinventplus)
  308. search(picinventplus)
  309. end
  310.  
  311. end
  312.  
  313. function invent_choosen()
  314. for i=1, #a-1 do
  315. if slot_invent_count == 4 then
  316. for i=12, 15 do pic[i].text="["..tostring(i-11).."]" end
  317. pic[slot_invent+11].text="("..tostring(slot_invent)..")"
  318. elseif slot_invent_count == 8 then
  319. for i=12, 15 do pic[i].text="["..tostring(i-11).."]" end
  320. for i=28, 31 do pic[i].text="["..tostring(i-23).."]" end
  321. if slot_invent >= 5 then
  322. pic[slot_invent+23].text="("..tostring(slot_invent)..")"
  323. else
  324. pic[slot_invent+11].text="("..tostring(slot_invent)..")"
  325. end
  326. end
  327. end
  328. end
  329.  
  330. function invent_1()
  331. modem.broadcast(port, "drone.select(1)")
  332. slot_invent=1
  333. invent_choosen()
  334. end
  335.  
  336. function invent_2()
  337. modem.broadcast(port, "drone.select(2)")
  338. slot_invent=2
  339. invent_choosen()
  340. end
  341.  
  342. function invent_3()
  343. modem.broadcast(port, "drone.select(3)")
  344. slot_invent=3
  345. invent_choosen()
  346. end
  347.  
  348. function invent_4()
  349. modem.broadcast(port, "drone.select(4)")
  350. slot_invent=4
  351. invent_choosen()
  352. end
  353.  
  354. function invent_5()
  355. modem.broadcast(port, "drone.select(5)")
  356. slot_invent=5
  357. invent_choosen()
  358. end
  359.  
  360. function invent_6()
  361. modem.broadcast(port, "drone.select(6)")
  362. slot_invent=6
  363. invent_choosen()
  364. end
  365.  
  366. function invent_7()
  367. modem.broadcast(port, "drone.select(7)")
  368. slot_invent=7
  369. invent_choosen()
  370. end
  371.  
  372. function invent_8()
  373. modem.broadcast(port, "drone.select(8)")
  374. slot_invent=8
  375. invent_choosen()
  376. end
  377.  
  378. function swing_down()
  379. modem.broadcast(port, "drone.swing(0)")
  380. end
  381.  
  382. function swing_up()
  383. modem.broadcast(port, "drone.swing(1)")
  384. end
  385.  
  386. function swingNorth()
  387. modem.broadcast(port, "drone.swing(2)")
  388. end
  389.  
  390. function swingSouth()
  391. modem.broadcast(port, "drone.swing(3)")
  392. end
  393.  
  394. function swingEast()
  395. modem.broadcast(port, "drone.swing(5)")
  396. end
  397.  
  398. function swingWest()
  399. modem.broadcast(port, "drone.swing(4)")
  400. end
  401.  
  402. function place_down()
  403. modem.broadcast(port, "drone.place(0)")
  404. end
  405.  
  406. function place_up()
  407. modem.broadcast(port, "drone.place(1)")
  408. end
  409.  
  410. function placeNorth()
  411. modem.broadcast(port, "drone.place(2)")
  412. end
  413.  
  414. function placeSouth()
  415. modem.broadcast(port, "drone.place(3)")
  416. end
  417.  
  418. function placeEast()
  419. modem.broadcast(port, "drone.place(5)")
  420. end
  421.  
  422. function placeWest()
  423. modem.broadcast(port, "drone.place(4)")
  424. end
  425.  
  426. function tank()
  427. --здесь могла бы быть ваша функция
  428. end
  429.  
  430. function tank_plus()
  431.  
  432.  
  433.  
  434. --intarface()
  435.  
  436. end
  437.  
  438. function tank_1()
  439. modem.broadcast(port, "drone.selectTank(1)")
  440. end
  441.  
  442. function drain_down()
  443. modem.broadcast(port, "drone.drain(0)")
  444. end
  445.  
  446. function drain_up()
  447. modem.broadcast(port, "drone.drain(1)")
  448. end
  449.  
  450. function drainNorth()
  451. modem.broadcast(port, "drone.drain(2)")
  452. end
  453.  
  454. function drainSouth()
  455. modem.broadcast(port, "drone.drain(3)")
  456. end
  457.  
  458. function drainEast()
  459. modem.broadcast(port, "drone.drain(5)")
  460. end
  461.  
  462. function drainWest()
  463. modem.broadcast(port, "drone.drain(4)")
  464. end
  465.  
  466. function fill_down()
  467. modem.broadcast(port, "drone.fill(0)")
  468. end
  469.  
  470. function fill_up()
  471. modem.broadcast(port, "drone.fill(1)")
  472. end
  473.  
  474. function fillNorth()
  475. modem.broadcast(port, "drone.fill(2)")
  476. end
  477.  
  478. function fillSouth()
  479. modem.broadcast(port, "drone.fill(3)")
  480. end
  481.  
  482. function fillEast()
  483. modem.broadcast(port, "drone.fill(5)")
  484. end
  485.  
  486. function fillWest()
  487. modem.broadcast(port, "drone.fill(4)")
  488. end
  489.  
  490. function use_down()
  491. modem.broadcast(port, "drone.use(0)")
  492. end
  493.  
  494. function use_up()
  495. modem.broadcast(port, "drone.use(1)")
  496. end
  497.  
  498. function useNorth()
  499. modem.broadcast(port, "drone.use(2)")
  500. end
  501.  
  502. function useSouth()
  503. modem.broadcast(port, "drone.use(3)")
  504. end
  505.  
  506. function useEast()
  507. modem.broadcast(port, "drone.use(5)")
  508. end
  509.  
  510. function useWest()
  511. modem.broadcast(port, "drone.use(4)")
  512. end
  513.  
  514. function drop_down()
  515. modem.broadcast(port, "drone.drop(0)")
  516. end
  517.  
  518. function drop_up()
  519. modem.broadcast(port, "drone.drop(1)")
  520. end
  521.  
  522. function dropNorth()
  523. modem.broadcast(port, "drone.drop(2)")
  524. end
  525.  
  526. function dropSouth()
  527. modem.broadcast(port, "drone.drop(3)")
  528. end
  529.  
  530. function dropEast()
  531. modem.broadcast(port, "drone.drop(5)")
  532. end
  533.  
  534. function dropWest()
  535. modem.broadcast(port, "drone.drop(4)")
  536. end
  537.  
  538. function suck_down()
  539. modem.broadcast(port, "drone.suck(0)")
  540. end
  541.  
  542. function suck_up()
  543. modem.broadcast(port, "drone.suck(1)")
  544. end
  545.  
  546. function suckNorth()
  547. modem.broadcast(port, "drone.suck(2)")
  548. end
  549.  
  550. function suckSouth()
  551. modem.broadcast(port, "drone.suck(3)")
  552. end
  553.  
  554. function suckEast()
  555. modem.broadcast(port, "drone.suck(5)")
  556. end
  557.  
  558. function suckWest()
  559. modem.broadcast(port, "drone.suck(4)")
  560. end
  561.  
  562. function docking()
  563. modem.broadcast(port, "if docking.dock() == true then modem.broadcast(467, 'done') else modem.broadcast(467, 'nope') end")
  564. local _,_,_,_,_,messagedocking=event.pull("modem")
  565. if messagedocking == 'done' then
  566. pic[67].active=false
  567. os.sleep(0.5)
  568. pic[68].active=true
  569. pic[69].active=true
  570. end
  571. end
  572.  
  573. function undocking()
  574. pic[68].active=false
  575. pic[69].active=false
  576. os.sleep(0.5)
  577. pic[67].active=true
  578. modem.broadcast(port, "docking.release()")
  579. interface()
  580. end
  581.  
  582. function drop_Items()
  583. modem.broadcast(port, "docking.dropItem(drone.select())")
  584. end
  585.  
  586. function redstone_activate()
  587. red_act=2
  588. pic[70].color2=0xFF0000
  589. for i=72, 82, 2 do pic[i].active=true end
  590. end
  591.  
  592. --function redstone_deactivate()
  593. --modem.broadcast(port, "for i=1-1, 6-1 do redstone(i, 0) end")
  594. --for i=71, 83, 2 do pic[i].active=false end
  595. --pic[70].active=true
  596. --end
  597.  
  598. --function redstone_down_1()
  599. --redact=2
  600. --redact=redact+1
  601. --if redact>3 then
  602. --modem.broadcast(port, "redstone.setOutput(0, 0)")
  603. --pic[82].color2=0xFFFFFF
  604. --redact=redact-1
  605. --else
  606. --modem.broadcast(port, "redstone.setOutput(0, 15)")
  607. --pic[82].color2=0xFFFFFF
  608. --end
  609. --end
  610.  
  611. --function redstone_down_0()
  612. --modem.broadcast(port, "redstone.setOutput(0, 0)")
  613. --pic[83].active=false
  614. --pic[82].active=true
  615. --end
  616.  
  617. --function redstone_up_1()
  618. --modem.broadcast(port, "redstone.setOutput(1, 15)")
  619. --pic[80].active=false
  620. --pic[81].active=true
  621. --end
  622.  
  623. --function redstone_up_0()
  624. --modem.broadcast(port, "redstone.setOutput(1, 0)")
  625. --pic[81].active=false
  626. --pic[80].active=true
  627. --end
  628.  
  629. --function redstone_north_1()
  630. --modem.broadcast(port, "redstone.setOutput(2, 15)")
  631. --pic[72].active=false
  632. --pic[73].active=true
  633. --end
  634.  
  635. --function redstone_north_0()
  636. --modem.broadcast(port, "redstone.setOutput(2, 0)")
  637. --pic[73].active=false
  638. --pic[72].active=true
  639. --end
  640.  
  641. --function redstone_south_1()
  642. --modem.broadcast(port, "redstone.setOutput(3, 15)")
  643. --pic[74].active=false
  644. --pic[75].active=true
  645. --end
  646.  
  647. --function redstone_south_0()
  648. --modem.broadcast(port, "redstone.setOutput(3, 0)")
  649. --pic[75].active=false
  650. --pic[74].active=true
  651. --end
  652.  
  653. --function redstone_east_1()
  654. --modem.broadcast(port, "redstone.setOutput(5, 15)")
  655. --pic[76].active=false
  656. --pic[77].active=true
  657. --end
  658.  
  659. --function redstone_east_0()
  660. --modem.broadcast(port, "redstone.setOutput(5, 0)")
  661. --pic[77].active=false
  662. --pic[76].active=true
  663. --end
  664.  
  665. --function redstone_west_1()
  666. --modem.broadcast(port, "redstone.setOutput(4, 15)")
  667. --pic[78].active=false
  668. --pic[79].active=true
  669. --end
  670.  
  671. --function redstone_west_0()
  672. --modem.broadcast(port, "redstone.setOutput(4, 0)")
  673. --pic[79].active=false
  674. --pic[78].active=true
  675. --end
  676.  
  677. function tractorBeam()
  678.  
  679. modem.broadcast(port, "tractor_beam.suck()")
  680.  
  681. end
  682.  
  683. function invent_exit()
  684. activatorinvent=false
  685. activatormain=true
  686. interface()
  687. end
  688.  
  689. function leash_active()
  690. pic[85].active=false
  691. for i=86, 88 do
  692. pic[i].active=true
  693. end
  694. end
  695.  
  696. function leash_deactive()
  697. for i=86, 88 do
  698. pic[i].active=false
  699. end
  700. os.sleep(0.5)
  701. modem.broadcast(port, "leash.unleash()")
  702. pic[85].active=true
  703. interface()
  704. end
  705.  
  706. function leash_leash()
  707. modem.broadcast(port, "leash.leash(0)")
  708. end
  709.  
  710. function leash_uleash()
  711. modem.broadcast(port, "leash.unleash()")
  712. end
  713.  
  714. function sign_active()
  715. activatormain=false
  716. activatorsign=true
  717. gpu.setResolution(15, 25)
  718. term.clear()
  719. while activatorsign do
  720. buttons(picsign)
  721. search(picsign)
  722. gpu.set(1, 1, "Надпись")
  723. gpu.set(1, 2, "15 символов")
  724. gpu.set(1, 3, "Работает только")
  725. gpu.set(1, 4, "в сторону 'Юг'")
  726. end
  727. end
  728.  
  729.  
  730. function sign_write()
  731. for i=1, 4 do for j=1, 15 do gpu.set(1+j-1, 5+i, " ") end end
  732. term.setCursor(1, 6)
  733. sign1=io.read()
  734. term.setCursor(1, 7)
  735. sign2=io.read()
  736. term.setCursor(1, 8)
  737. sign3=io.read()
  738. term.setCursor(1, 9)
  739. sign4=io.read()
  740. signwrite1=sign1.."\n"..sign2.."\n"..sign3.."\n"..sign4
  741. signwrite2=serialization.serialize(signwrite1)
  742. signwrite3="sign.setValue("..signwrite2..")"
  743. modem.broadcast(port, signwrite3)
  744. end
  745.  
  746. function sign_read()
  747. modem.broadcast(port, "textsign=sign.getValue() computer.pullSignal(1) modem.broadcast(467, textsign)")
  748. local _,_,_,_,_,messagesign=event.pull("modem")
  749. for i=1, 4 do for j=1, 15 do gpu.set(1+j-1, 19+i, " ") end end
  750. term.setCursor(1, 20)
  751. print(messagesign)
  752. end
  753.  
  754. function sign_exit()
  755. activatorsign=false
  756. activatormain=true
  757. gpu.setResolution(80, 25)
  758. interface()
  759. end
  760.  
  761. function piston_down()
  762. modem.broadcast(port, "piston.push(0)")
  763. end
  764.  
  765. function piston_up()
  766. modem.broadcast(port, "piston.push(1)")
  767. end
  768.  
  769. function pistonNorth()
  770. modem.broadcast(port, "piston.push(2)")
  771. end
  772.  
  773. function pistonSouth()
  774. modem.broadcast(port, "piston.push(3)")
  775. end
  776.  
  777. function pistonEast()
  778. modem.broadcast(port, "piston.push(5)")
  779. end
  780.  
  781. function pistonWest()
  782. modem.broadcast(port, "piston.push(4)")
  783. end
  784.  
  785. function invent_plus_exit()
  786. activatorinventplus=false
  787. activatormain=true
  788. interface()
  789. end
  790.  
  791. function side_down()
  792. for i=1, 6 do gpu.set(11, 18+i, " ") end
  793. gpu.set(11, 24, "<")
  794. droneside=0
  795. end
  796.  
  797. function side_up()
  798. for i=1, 6 do gpu.set(11, 18+i, " ") end
  799. gpu.set(11, 23, "<")
  800. droneside=1
  801. end
  802.  
  803. function north()
  804. for i=1, 6 do gpu.set(11, 18+i, " ") end
  805. gpu.set(11, 19, "<")
  806. droneside=2
  807. end
  808.  
  809. function south()
  810. for i=1, 6 do gpu.set(11, 18+i, " ") end
  811. gpu.set(11, 20, "<")
  812. droneside=3
  813. end
  814.  
  815. function east()
  816. for i=1, 6 do gpu.set(11, 18+i, " ") end
  817. gpu.set(11, 21, "<")
  818. droneside=5
  819. end
  820.  
  821. function west()
  822. for i=1, 6 do gpu.set(11, 18+i, " ") end
  823. gpu.set(11, 22, "<")
  824. droneside=4
  825. end
  826.  
  827. function invent_plus_get()
  828. modem.broadcast(port, "inventorysize=invcontr.getInventorySize("..tostring(droneside)..") modem.broadcast(467, inventorysize)")
  829. _,_,_,_,_,inventplusget=event.pull("modem")
  830. if inventplusget ~= nil then
  831. for i=19, 24 do char=gpu.get(11, i) if char == "<" then
  832. picinventplus[i-10].active=true
  833. picinventplus[i-10].text=tostring(inventplusget)
  834. --invent_plus()
  835. buttons(picinventplus)
  836. end
  837. end
  838. end
  839. end
  840.  
  841. function get_stack_in_slot_down()
  842. activatorinventplus=false
  843. activatorinventplusstack=true
  844. droneside=0
  845. get_stack_in_slot()
  846. end
  847.  
  848. function get_stack_in_slot_up()
  849. activatorinventplus=false
  850. activatorinventplusstack=true
  851. droneside=1
  852. get_stack_in_slot()
  853. end
  854.  
  855. function get_stack_in_slot_north()
  856. activatorinventplus=false
  857. activatorinventplusstack=true
  858. droneside=2
  859. get_stack_in_slot()
  860. end
  861.  
  862. function get_stack_in_slot_south()
  863. activatorinventplus=false
  864. activatorinventplusstack=true
  865. droneside=3
  866. get_stack_in_slot()
  867. end
  868.  
  869. function get_stack_in_slot_east()
  870. activatorinventplus=false
  871. activatorinventplusstack=true
  872. droneside=5
  873. get_stack_in_slot()
  874. end
  875.  
  876. function get_stack_in_slot_west()
  877. activatorinventplus=false
  878. activatorinventplusstack=true
  879. droneside=4
  880. get_stack_in_slot()
  881. end
  882.  
  883. function get_stack_in_slot()
  884. term.clear()
  885. gpu.set(1, 1, "Введите номер слота инвентаря:")
  886. gpu.set(1, 9, "Выберите слот дрона:")
  887.  
  888. if slot_invent_count == 8 then
  889. for i=3, 10 do picinventplusstack[i].active=true end
  890. elseif slot_invent_count == 4 then
  891. for i=3, 6 do picinventplusstack[i].active=true end
  892. end
  893.  
  894. while activatorinventplusstack do
  895. buttons(picinventplusstack)
  896. search(picinventplusstack)
  897. end
  898. end
  899.  
  900. function get_stack_in_slot_run()
  901. term.setCursor(31, 1) term.setCursorBlink(true) local x,y=term.getCursor()
  902. gpu.setForeground(0x000000)
  903. gpu.setBackground(0xFFFFFF)
  904. keys={}
  905. while true do
  906. local event,_,key,key1,_=event.pull()
  907. if event == 'key_down' then
  908. if key >= 48 and key <= 57 then
  909. table.insert(keys, tostring(key-48))
  910. for i=1, #keys do gpu.set(30+i, 1, keys[i]) term.setCursor(x+i, y) end
  911. end
  912. if #keys == 3 then break
  913. elseif key == 13 then gpu.set(x, y, " ") break
  914. end
  915. end
  916. end
  917. term.setCursorBlink(false)
  918. gpu.setForeground(0xFFFFFF)
  919. gpu.setBackground(0x000000)
  920. slotnumber=table.concat(keys)
  921. slotnumber1=tonumber(slotnumber)
  922. gpu.set(1, 3, "                          ")
  923. if slotnumber1 > inventplusget then
  924. gpu.set(1, 3, "Такого слота не существует")
  925. else
  926. get_slot_stack_additional()
  927. end
  928. end
  929.  
  930. function get_slot_stack_additional()
  931. if slotnumber == nil then
  932. gpu.set(1, 6, 'Слот не выбран')
  933. else
  934. modem.broadcast(port, "getslotstack=invcontr.getStackInSlot("..tostring(droneside)..", "..slotnumber..") if getslotstack == nil then modem.broadcast(467, 'stop') else modem.broadcast(467, getslotstack.label) computer.pullSignal(0.2) modem.broadcast(467, getslotstack.size) computer.pullSignal(0.2) modem.broadcast(467, getslotstack.maxSize) modem.broadcast(467, 'done') end getslotstack={}")
  935. end
  936. while true do
  937. _,_,_,_,_,getslotstack1=event.pull("modem")
  938. table.insert(getslotstacktable, getslotstack1)
  939. if getslotstack1 == 'done' or getslotstack1 == 'stop' then break end
  940. end
  941. for i=1, 30 do for j=1, 4 do gpu.set(1+i-1, 2+j, " ") end end
  942. if getslotstacktable[4] == 'done' then
  943. gpu.set(1, 3, "Слот: "..slotnumber)
  944. gpu.set(1, 4, "Предмет: "..tostring(getslotstacktable[1]))
  945. gpu.set(1, 5, "Количество: "..tostring(getslotstacktable[2]).."/"..tostring(getslotstacktable[3]))
  946. elseif getslotstacktable[1] == 'stop' then
  947. gpu.set(1, 6, "Слот "..slotnumber.." пуст")
  948. end
  949. getslotstacktable={}
  950. end
  951.  
  952.  
  953. function get_stack_in_slot_exit()
  954. activatorinventplusstack=false
  955. activatorinventplus=true
  956. invent_plus()
  957. end
  958.  
  959. function get_stack_internal()
  960. activatorinventplus=false
  961. activatorinventplusstack=true
  962. get_stack_in_slot()
  963. end
  964.  
  965. function invent_stack_choosen(pic_additional, pic_number, pic_n_1, pic_n_2, pic_n_3)
  966.  
  967. if slot_invent_count == 8 then
  968. for i=pic_n_1, pic_n_2 do pic_additional[i].text='['..tostring(i-pic_number)..']' end
  969. elseif slot_invent_count == 4 then
  970. for i=pic_n_1, pic_n_3 do pic_additional[i].text='['..tostring(i-pic_number)..']' end
  971. end
  972.  
  973. pic_additional[slot_plus+pic_number].text='('..tostring(slot_plus)..')'
  974. end
  975.  
  976. function get_stack_in_internal_slot()
  977. modem.broadcast(port, "internalslot=invcontr.getStackInInternalSlot("..tostring(slot_plus)..") if internalslot ~= nil then modem.broadcast(467, internalslot.label) computer.pullSignal(0.2) modem.broadcast(467, internalslot.size) computer.pullSignal(0.2) modem.broadcast(467, internalslot.maxSize) computer.pullSignal(0.2) modem.broadcast(467, 'done') else modem.broadcast(467, 'stop') end")
  978. while true do
  979. local _,_,_,_,_,internalstack=event.pull("modem")
  980. table.insert(internalstacktable, internalstack)
  981. if internalstack == 'done' or internalstack == 'stop' then break end
  982. end
  983. gpu.fill(1, 13, 40, 4, " ")
  984. if internalstacktable[4] == 'done' then
  985. gpu.set(1, 13, 'Слот: '..tostring(slot_plus))
  986. gpu.set(1, 14, 'Предмет:'..internalstacktable[1])
  987. gpu.set(1, 15, 'Количество: '..tostring(internalstacktable[2])..'/'..tostring(internalstacktable[3]))
  988. elseif internalstacktable[1] == 'stop' then
  989. gpu.set(1, 16, 'Слот пуст')
  990. end
  991. internalstacktable={}
  992. end
  993.  
  994.  
  995. function invent_1_stack()
  996. modem.broadcast(port, "drone.select(1)")
  997. slot_plus=1
  998. invent_stack_choosen(picinventplusstack, 2, 3, 10, 6)
  999. get_stack_in_internal_slot()
  1000. end
  1001.  
  1002. function invent_2_stack()
  1003. modem.broadcast(port, "drone.select(2)")
  1004. slot_plus=2
  1005. invent_stack_choosen(picinventplusstack, 2, 3, 10, 6)
  1006. get_stack_in_internal_slot()
  1007. end
  1008.  
  1009. function invent_3_stack()
  1010. modem.broadcast(port, "drone.select(3)")
  1011. slot_plus=3
  1012. invent_stack_choosen(picinventplusstack, 2, 3, 10, 6)
  1013. get_stack_in_internal_slot()
  1014. end
  1015.  
  1016. function invent_4_stack()
  1017. modem.broadcast(port, "drone.select(4)")
  1018. slot_plus=4
  1019. invent_stack_choosen(picinventplusstack, 2, 3, 10, 6)
  1020. get_stack_in_internal_slot()
  1021. end
  1022.  
  1023. function invent_5_stack()
  1024. modem.broadcast(port, "drone.select(5)")
  1025. slot_plus=5
  1026. invent_stack_choosen(picinventplusstack, 2, 3, 10, 6)
  1027. get_stack_in_internal_slot()
  1028. end
  1029.  
  1030. function invent_6_stack()
  1031. modem.broadcast(port, "drone.select(6)")
  1032. slot_plus=6
  1033. invent_stack_choosen(picinventplusstack, 2, 3, 10, 6)
  1034. get_stack_in_internal_slot()
  1035. end
  1036.  
  1037. function invent_7_stack()
  1038. modem.broadcast(port, "drone.select(7)")
  1039. slot_plus=7
  1040. invent_stack_choosen(picinventplusstack, 2, 3, 10, 6)
  1041. get_stack_in_internal_slot()
  1042. end
  1043.  
  1044. function invent_8_stack()
  1045. modem.broadcast(port, "drone.select(8)")
  1046. slot_plus=8
  1047. invent_stack_choosen(picinventplusstack, 2, 3, 10, 6)
  1048. get_stack_in_internal_slot()
  1049. end
  1050.  
  1051. function stack_count()
  1052. term.setCursor(13, 23)
  1053. gpu.set(13, 23, "     ")
  1054. stackcount=io.read()
  1055. gpu.set(13, 23, stackcount)
  1056. end
  1057.  
  1058. function suck_from_slot()
  1059. if slotnumber == nil then
  1060. gpu.set(1, 16, 'Выберите слот инвентаря')
  1061. elseif slotnumber ~= nil and stackcount == nil then
  1062. modem.broadcast(port, "invcontr.suckFromSlot("..tostring(droneside)..", "..slotnumber..")")
  1063. elseif slotnumber ~= nil and stackcount ~= nil then
  1064. modem.broadcast(port, "invcontr.suckFromSlot("..tostring(droneside)..", "..slotnumber..", "..stackcount..")")
  1065. end
  1066. stackcount=nil
  1067. get_stack_in_internal_slot()
  1068. get_slot_stack_additional()
  1069. end
  1070.  
  1071. function drop_into_slot()
  1072. if slotnumber == nil then
  1073. gpu.set(1, 16, 'Выберите слот инвентаря')
  1074. elseif slotnumber ~= nil and stackcount == nil then
  1075. modem.broadcast(port, "invcontr.dropIntoSlot("..tostring(droneside)..", "..slotnumber..")")
  1076. elseif slotnumber ~= nil and stackcount ~= nil then
  1077. modem.broadcast(port, "invcontr.dropIntoSlot("..tostring(droneside)..", "..slotnumber..", "..stackcount..")")
  1078. end
  1079. stackcount=nil
  1080. get_stack_in_internal_slot()
  1081. get_slot_stack_additional()
  1082. end
  1083.  
  1084. function drone_generator()
  1085. activatormain=false
  1086. activatordrone_generator=true
  1087. gpu.set(1, 11, 'Слот дрона:')
  1088.  
  1089. if slot_invent_count == 8 then
  1090. for i=5, 12 do picdrone_generator[i].active=true end
  1091. elseif slot_invent_count == 4 then
  1092. for i=5, 8 do picdrone_generator[i].active=true end
  1093. end
  1094.  
  1095. term.clear()
  1096. while activatordrone_generator do
  1097. buttons(picdrone_generator)
  1098. search(picdrone_generator)
  1099. end
  1100. end
  1101.  
  1102. function drone_generator_exit()
  1103. activatordrone_generator=false
  1104. activatormain=true
  1105. interface()
  1106. end
  1107.  
  1108. function invent_1_generator()
  1109. modem.broadcast(port, "drone.select(1)")
  1110. slot_plus=1
  1111. invent_stack_choosen(picdrone_generator, 4, 5, 12, 8)
  1112. end
  1113.  
  1114. function invent_2_generator()
  1115. modem.broadcast(port, "drone.select(2)")
  1116. slot_plus=2
  1117. invent_stack_choosen(picdrone_generator, 4, 5, 12, 8)
  1118. end
  1119.  
  1120. function invent_3_generator()
  1121. modem.broadcast(port, "drone.select(3)")
  1122. slot_plus=3
  1123. invent_stack_choosen(picdrone_generator, 4, 5, 12, 8)
  1124. end
  1125.  
  1126. function invent_4_generator()
  1127. modem.broadcast(port, "drone.select(4)")
  1128. slot_plus=4
  1129. invent_stack_choosen(picdrone_generator, 4, 5, 12, 8)
  1130. end
  1131.  
  1132. function invent_5_generator()
  1133. modem.broadcast(port, "drone.select(5)")
  1134. slot_plus=5
  1135. invent_stack_choosen(picdrone_generator, 4, 5, 12, 8)
  1136. end
  1137.  
  1138. function invent_6_generator()
  1139. modem.broadcast(port, "drone.select(6)")
  1140. slot_plus=6
  1141. invent_stack_choosen(picdrone_generator, 4, 5, 12, 8)
  1142. end
  1143.  
  1144. function invent_7_generator()
  1145. modem.broadcast(port, "drone.select(7)")
  1146. slot_plus=7
  1147. invent_stack_choosen(picdrone_generator, 4, 5, 12, 8)
  1148. end
  1149.  
  1150. function invent_8_generator()
  1151. modem.broadcast(port, "drone.select(8)")
  1152. slot_plus=8
  1153. invent_stack_choosen(picdrone_generator, 4, 5, 12, 8)
  1154. end
  1155.  
  1156. function drone_generator_count()
  1157. gpu.set(13, 5, "  ")
  1158. modem.broadcast(port, "generatorcount=generator.count() modem.broadcast(467, generatorcount)")
  1159. local _,_,_,_,_,dronegeneratorcount=event.pull("modem")
  1160. gpu.set(13, 5, tostring(dronegeneratorcount))
  1161. end
  1162.  
  1163. function drone_generator_insert()
  1164. gpu.set(13, 7, "         ")
  1165. modem.broadcast(port, "if generator.insert() == true then modem.broadcast(467, 'Успешно') else modem.broadcast(467, 'Неуспешно') end")
  1166. local _,_,_,_,_,dronegeneratorcount=event.pull("modem")
  1167. gpu.set(13, 7, dronegeneratorcount)
  1168. end
  1169.  
  1170. function drone_generator_remove()
  1171. gpu.set(13, 9, "         ")
  1172. modem.broadcast(port, "if generator.remove() == true then modem.broadcast(467, 'Успешно') else modem.broadcast(467, 'Неуспешно') end")
  1173. local _,_,_,_,_,dronegeneratorremove=event.pull("modem")
  1174. gpu.set(13, 9, dronegeneratorremove)
  1175. end
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186. --term.clear()
  1187.  
  1188. --button(10, 10, initialization, 0xFFFF00, 0x00FFFF)
  1189. --local _, _, x, y = event.pull("touch")
  1190. --if y>=10 and y<=13 then
  1191. --initialize()
  1192. --modem.broadcast(port, "modem=component.proxy(component.list('modem')())")
  1193. --modem.broadcast(port, "computer.pullSignal(5) for k,v in component.list() do modem.broadcast(467, v) end")
  1194. --while true do
  1195. --local _,_,_,_,_,message=event.pull("modem")
  1196. --table.insert(a, message)
  1197. --for j=1, #a do print(a[j]) end
  1198. --end
  1199. --end
  1200.  
  1201.  
  1202.  
  1203. pic={{x=1,y=2,h=3,text='Инициализация',func=initialize,active=true,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1204.      {x=78,y=1,h=1,text='X',func=quit,active=true,lang='eng',color1=0xFF0000,color2=0x333333},
  1205.      {x=50,y=3,h=1,text='Вперёд',func=forward,active=true,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1206.      {x=50,y=9,h=1,text='Назад',func=back,active=true,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1207.      {x=40,y=6,h=1,text='Налево',func=left,active=true,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1208.      {x=60,y=6,h=1,text='Направо',func=right,active=true,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1209.      {x=70,y=3,h=1,text='Вверх',func=up,active=true,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1210.      {x=70,y=9,h=1,text='Вниз',func=down,active=true,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1211.      {x=1,y=2,h=3,text='Инициализировано',func=initialize_done,active=false,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1212.      {x=1,y=23,h=1,text='Инвентарь',func=invent,active=false,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1213.      {x=12,y=23,h=1,text='+',func=invent_plus,active=flase,lang='eng',color1=0x0000FF,color2=0x00FF00},
  1214.      {x=1,y=24,h=1,text='[1]',func=invent_1,active=false,lang='eng',color1=0x00FF00,color2=0x555555},
  1215.      {x=6,y=24,h=1,text='[2]',func=invent_2,active=false,lang='eng',color1=0x00FF00,color2=0x999999},
  1216.      {x=11,y=24,h=1,text='[3]',func=invent_3,active=false,lang='eng',color1=0x00FF00,color2=0x555555},
  1217.      {x=16,y=24,h=1,text='[4]',func=invent_4,active=false,lang='eng',color1=0x00FF00,color2=0x999999},
  1218.      {x=22,y=24,h=1,text='N',func=swingNorth,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1219.      {x=22,y=25,h=1,text='S',func=swingSouth,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1220.      {x=26,y=24,h=1,text='E',func=swingEast,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1221.      {x=26,y=25,h=1,text='W',func=swingWest,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1222.      {x=30,y=24,h=1,text='U',func=swing_up,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1223.      {x=30,y=25,h=1,text='D',func=swing_down,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1224.      {x=35,y=24,h=1,text='N',func=placeNorth,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1225.      {x=35,y=25,h=1,text='S',func=placeSouth,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1226.      {x=39,y=24,h=1,text='E',func=placeEast,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1227.      {x=39,y=25,h=1,text='W',func=placeWest,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1228.      {x=43,y=24,h=1,text='U',func=place_up,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1229.      {x=43,y=25,h=1,text='D',func=place_down,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1230.      {x=1,y=25,h=1,text='[5]',func=invent_5,active=false,lang='eng',color1=0x00FF00,color2=0x555555},
  1231.      {x=6,y=25,h=1,text='[6]',func=invent_6,active=false,lang='eng',color1=0x00FF00,color2=0x999999},
  1232.      {x=11,y=25,h=1,text='[7]',func=invent_7,active=false,lang='eng',color1=0x00FF00,color2=0x555555},
  1233.      {x=16,y=25,h=1,text='[8]',func=invent_8,active=false,lang='eng',color1=0x00FF00,color2=0x999999},
  1234.      {x=1,y=20,h=1,text='Цистерны',func=tank,active=false,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1235.      {x=11,y=20,h=1,text='+',func=tank_plus,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1236.      {x=1,y=21,h=1,text='[1]',func=tank_1,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1237.      {x=18,y=20,h=1,text='N',func=drainNorth,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1238.      {x=18,y=21,h=1,text='S',func=drainSouth,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1239.      {x=22,y=20,h=1,text='E',func=drainEast,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1240.      {x=22,y=21,h=1,text='W',func=drainWest,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1241.      {x=26,y=20,h=1,text='U',func=drain_up,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1242.      {x=26,y=21,h=1,text='D',func=drain_down,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1243.      {x=31,y=20,h=1,text='N',func=fillNorth,active=flase,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1244.      {x=31,y=21,h=1,text='S',func=fillSouth,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1245.      {x=35,y=20,h=1,text='E',func=fillEast,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1246.      {x=35,y=21,h=1,text='W',func=fillWest,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1247.      {x=39,y=20,h=1,text='U',func=fill_up,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1248.      {x=39,y=21,h=1,text='D',func=fill_down,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1249.      {x=6,y=21,h=1,text='[2]',func=tank_2,active=false,lang='eng',color1=0x000000,color2=0x999999},
  1250.      {x=11,y=21,h=1,text='[3]',func=tank_3,active=false,lang='eng',color1=0x000000,color2=0x555555},
  1251.      {x=50,y=12,h=1,text='N',func=useNorth,active=true,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1252.      {x=50,y=13,h=1,text='S',func=useSouth,active=true,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1253.      {x=54,y=12,h=1,text='E',func=useEast,active=true,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1254.      {x=54,y=13,h=1,text='W',func=useWest,active=true,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1255.      {x=58,y=12,h=1,text='U',func=use_up,active=true,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1256.      {x=58,y=13,h=1,text='D',func=use_down,active=true,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1257.      {x=50,y=24,h=1,text='N',func=dropNorth,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1258.      {x=50,y=25,h=1,text='S',func=dropSouth,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1259.      {x=54,y=24,h=1,text='E',func=dropEast,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1260.      {x=54,y=25,h=1,text='W',func=dropWest,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1261.      {x=58,y=24,h=1,text='U',func=drop_up,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1262.      {x=58,y=25,h=1,text='D',func=drop_down,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1263.      {x=63,y=24,h=1,text='N',func=suckNorth,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1264.      {x=63,y=25,h=1,text='S',func=suckSouth,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1265.      {x=67,y=24,h=1,text='E',func=suckEast,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1266.      {x=67,y=25,h=1,text='W',func=suckWest,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1267.      {x=71,y=24,h=1,text='U',func=suck_up,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1268.      {x=71,y=25,h=1,text='D',func=suck_down,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1269.      {x=45,y=20,h=1,text='Стыковка',func=docking,active=false,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1270.      {x=45,y=21,h=1,text='^',func=undocking,active=false,lang='rus',color1=0xFFFFFF,color2=0x0000FF},
  1271.      {x=48,y=21,h=1,text='Сброс',func=drop_Items,active=false,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1272.      {x=65,y=15,h=1,text='Redstone',func=redstone_activate,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1273.      {x=65,y=15,h=1,text='Redstone',func=redstone_deactivate,active=false,lang='eng',color1=0x000000,color2=0xFF0000},
  1274.      {x=65,y=16,h=1,text='N',func=redstone_north_1,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1275.      {x=65,y=16,h=1,text='N',func=redstone_north_0,active=false,lang='eng',color1=0x000000,color2=0xFF0000},
  1276.      {x=68,y=16,h=1,text='S',func=redstone_south_1,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1277.      {x=68,y=16,h=1,text='S',func=redstone_south_0,active=false,lang='eng',color1=0x000000,color2=0xFF0000},
  1278.      {x=71,y=16,h=1,text='E',func=redstone_east_1,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1279.      {x=71,y=16,h=1,text='E',func=redstone_east_0,active=false,lang='eng',color1=0x000000,color2=0xFF0000},
  1280.      {x=74,y=16,h=1,text='W',func=redstone_west_1,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1281.      {x=74,y=16,h=1,text='W',func=redstone_west_0,active=false,lang='eng',color1=0x000000,color2=0xFF0000},
  1282.      {x=65,y=17,h=1,text='U',func=redstone_up_1,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1283.      {x=65,y=17,h=1,text='U',func=redstone_up_0,active=false,lang='eng',color1=0x000000,color2=0xFF0000},
  1284.      {x=68,y=17,h=1,text='D',func=redstone_down_1,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1285.      {x=68,y=17,h=1,text='D',func=redstone_down_0,active=false,lang='eng',color1=0x000000,color2=0xFF0000},
  1286.      {x=1,y=18,h=1,text='Луч захвата',func=tractorBeam,active=false,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1287.      {x=1,y=15,h=1,text='Лассо',func=leash_active,active=false,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1288.      {x=8,y=15,h=1,text='-',func=leash_deactive,active=false,lang='eng',color1=0xFFFFFF,color2=0x000000},
  1289.      {x=1,y=16,h=1,text='↑',func=leash_leash,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1290.      {x=8,y=16,h=1,text='↓',func=leash_uleash,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1291.      {x=1,y=13,h=1,text='Табличка',func=sign_active,active=false,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1292.      {x=9,y=8,h=1,text='pN',func=pistonNorth,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1293.      {x=9,y=9,h=1,text='pS',func=pistonSouth,active=flase,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1294.      {x=13,y=8,h=1,text='pE',func=pistonEast,active=false,lang='eng',color1=0xFFFFFF,color2=0x000000},
  1295.      {x=13,y=9,h=1,text='pW',func=pistonWest,active=false,lang='eng',color1=0xFFFFFF,color2=0x000000},
  1296.      {x=17,y=8,h=1,text='pU',func=piston_up,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1297.      {x=17,y=9,h=1,text='pD',func=piston_down,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1298.      {x=1,y=6,h=1,text='Генератор',func=drone_generator,active=false,lang='rus',color1=0x000000,color2=0xFFFFFF}
  1299.         }
  1300.  
  1301. picinv={{x=76,y=1,h=1,text='X',func=invent_exit,active=true,lang='eng',color1=0xFF0000,color2=0x333333}
  1302.           }
  1303.  
  1304. picsign={{x=1,y=10,h=1,text='Север',func=north,active=false,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1305.          {x=1,y=11,h=1,text='Юг',func=south,active=false,lang='rus',color1=0xFFFFFF,color2=0x000000},
  1306.          {x=1,y=12,h=1,text='Восток',func=east,active=false,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1307.          {x=1,y=13,h=1,text='Запад',func=west,active=false,lang='rus',color1=0xFFFFFF,color2=0x000000},
  1308.          {x=1,y=14,h=1,text='Верх',func=sign_up,active=false,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1309.          {x=1,y=15,h=1,text='Низ',func=sign_down,active=false,lang='rus',color1=0xFFFFFF,color2=0x000000},
  1310.          {x=1,y=16,h=1,text='Написать',func=sign_write,active=true,lang='rus',color1=0x0000FF,color2=0x333333},
  1311.          {x=1,y=17,h=1,text='Прочитать',func=sign_read,active=true,lang='rus',color1=0xFF00FF,color2=0x0000FF},
  1312.          {x=13,y=1,h=1,text='X',func=sign_exit,active=true,lang='eng',color1=0xFF0000,color2=0x333333}
  1313.            }
  1314.  
  1315. picinventplus={{x=77,y=1,h=1,text='X',func=invent_plus_exit,active=true,lang='eng',color1=0xFF0000,color2=0x333333},
  1316.                {x=1,y=19,h=1,text='Север',func=north,active=true,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1317.                {x=1,y=20,h=1,text='Юг',func=south,active=true,lang='rus',color1=0xFFFFFF,color2=0x000000},
  1318.                {x=1,y=21,h=1,text='Восток',func=east,active=true,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1319.                {x=1,y=22,h=1,text='Запад',func=west,active=true,lang='rus',color1=0xFFFFFF,color2=0x000000},
  1320.                {x=1,y=23,h=1,text='Верх',func=side_up,active=true,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1321.                {x=1,y=24,h=1,text='Низ',func=side_down,active=true,lang='rus',color1=0xFFFFFF,color2=0x000000},
  1322.                {x=14,y=2,h=1,text='Получить',func=invent_plus_get,active=true,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1323.                {x=22,y=3,h=1,text='North',func=get_stack_in_slot_north,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1324.                {x=22,y=4,h=1,text='South',func=get_stack_in_slot_south,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1325.                {x=22,y=5,h=1,text='East',func=get_stack_in_slot_east,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1326.                {x=22,y=6,h=1,text='West',func=get_stack_in_slot_west,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1327.                {x=22,y=7,h=1,text='Inventory_up',func=get_stack_in_slot_up,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1328.                {x=22,y=8,h=1,text='Inventory_down',func=get_stack_in_slot_down,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1329.                {x=1,y=13,h=1,text='Подробнее',func=get_stack_internal,active=true,lang='rus',color1=0x000000,color2=0xFFFFFF}
  1330.                 }
  1331.  
  1332. picinventplusstack={{x=76,y=1,h=1,text='X',func=get_stack_in_slot_exit,active=true,lang='eng',color1=0xFF0000,color2=0x333333},
  1333.                     {x=31,y=1,h=1,text='   ',func=get_stack_in_slot_run,active=true,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1334.                     {x=1,y=11,h=1,text='[1]',func=invent_1_stack,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1335.                     {x=6,y=11,h=1,text='[2]',func=invent_2_stack,active=false,lang='eng',color1=0xFFFFFF,color2=0x000000},
  1336.                     {x=11,y=11,h=1,text='[3]',func=invent_3_stack,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1337.                     {x=16,y=11,h=1,text='[4]',func=invent_4_stack,active=false,lang='eng',color1=0xFFFFFF,color2=0x000000},
  1338.                     {x=21,y=11,h=1,text='[5]',func=invent_5_stack,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1339.                     {x=26,y=11,h=1,text='[6]',func=invent_6_stack,active=false,lang='eng',color1=0xFFFFFF,color2=0x000000},
  1340.                     {x=31,y=11,h=1,text='[7]',func=invent_7_stack,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1341.                     {x=36,y=11,h=1,text='[8]',func=invent_8_stack,active=false,lang='eng',color1=0xFFFFFF,color2=0x000000},
  1342.                     {x=1,y=19,h=1,text='ЗабратьИзИнвентаря',func=suck_from_slot,active=true,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1343.                     {x=1,y=21,h=1,text='ПереместитьВИнвентарь',func=drop_into_slot,active=true,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1344.                     {x=1,y=23,h=1,text='Количетсво',func=stack_count,active=true,lang='rus',color1=0x000000,color2=0xFFFFFF}
  1345.                      }
  1346.  
  1347. picdrone_generator={{x=76,y=1,h=1,text='X',func=drone_generator_exit,active=true,lang='eng',color1=0xFF0000,color2=0x333333},
  1348.                     {x=1,y=5,h=1,text='Количество',func=drone_generator_count,active=true,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1349.                     {x=1,y=7,h=1,text='Поместить',func=drone_generator_insert,active=true,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1350.                     {x=1,y=9,h=1,text='Забрать',func=drone_generator_remove,active=true,lang='rus',color1=0x000000,color2=0xFFFFFF},
  1351.                     {x=1,y=13,h=1,text='[1]',func=invent_1_generator,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1352.                     {x=6,y=13,h=1,text='[2]',func=invent_2_generator,active=false,lang='eng',color1=0xFFFFFF,color2=0x000000},
  1353.                     {x=11,y=13,h=1,text='[3]',func=invent_3_generator,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1354.                     {x=16,y=13,h=1,text='[4]',func=invent_4_generator,active=false,lang='eng',color1=0xFFFFFF,color2=0x000000},
  1355.                     {x=21,y=13,h=1,text='[5]',func=invent_5_generator,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1356.                     {x=26,y=13,h=1,text='[6]',func=invent_6_generator,active=false,lang='eng',color1=0xFFFFFF,color2=0x000000},
  1357.                     {x=31,y=13,h=1,text='[7]',func=invent_7_generator,active=false,lang='eng',color1=0x000000,color2=0xFFFFFF},
  1358.                     {x=36,y=13,h=1,text='[8]',func=invent_8_generator,active=false,lang='eng',color1=0xFFFFFF,color2=0x000000}
  1359.                      }
  1360.  
  1361. --buttons(pic)
  1362.  
  1363. function search(pic)
  1364. local event,_,x,y=event.pull(0.5)
  1365. if event == 'touch' then
  1366. for k,v in pairs(pic) do
  1367. if v.h == 1 then
  1368. if (x>=v.x and x<v.x+((#v.text/2)+2)) and y == v.y and v.active == true then v.func() end
  1369. else
  1370. if (x>=v.x and x<v.x+((#v.text/2)+2)) and (y>=v.y-1 and y<v.y+(v.h-1)) and v.active == true then v.func() end
  1371. end
  1372. end
  1373. end
  1374.  
  1375.  
  1376. end
  1377.  
  1378. function interface()
  1379. term.clear()
  1380. gpu.set(20, 1, 'Имя:')
  1381. while activatormain do
  1382. gpu.set(20, 2, "                   ")
  1383. gpu.set(20, 2, dronename)
  1384. gpu.set(1, 8, pistonword)
  1385. gpu.set(25, 23, swingword)
  1386. gpu.set(38, 23, placeword)
  1387. gpu.set(53, 23, dropword)
  1388. gpu.set(66, 23, suckword)
  1389. gpu.set(54, 11, "Use")
  1390. gpu.set(21, 19, drainword)
  1391. gpu.set(34, 19, fillword)
  1392. buttons(pic)
  1393. search(pic)
  1394. end
  1395. end
  1396.  
  1397. interface()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement