Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- pastebin get X7ZPzJFz portal
- os.loadAPI("button")
- m = peripheral.wrap("left")
- m.clear()
- rednet.open("bottom")
- local names = {}
- local turtles = {}
- local remove = false
- function fillTurtles()
- turtles[1] = 74
- turtles[2] = 72
- turtles[3] = 75
- end
- function fillTable()
- m.clear()
- button.clearTable()
- local numNames = 0
- local col = 2
- local row = 12
- local countRow = 1
- for turt, data in pairs(names) do
- for slot, name in pairs(data) do
- if countRow % 2 ~= 0 then
- row = 12-(countRow-1)
- else
- row = 12+(countRow)
- end
- names[turt][slot] = string.sub(name, 0, 10)
- button.setTable(string.sub(name, 0, 10), runStuff, turt..":"..slot, col, col+10, row, row)
- if col == 26 then
- col = 2
- countRow = countRow + 1
- else
- col = col+12
- end
- end
- --col = col+12
- end
- button.setTable("Rescan Turtles", checkNames, "", 20, 35, 26, 26)
- button.setTable("Remove Book", removeIt, "", 3, 18, 26, 26)
- button.screen()
- end
- function getNames()
- names = {}
- for x, y in pairs(turtles) do
- names[y] = {}
- rednet.send(y, "getNames")
- local id, msg, dist = rednet.receive(2)
- -- print(msg)
- names[y] = textutils.unserialize(msg)
- end
- end
- function removeIt()
- remove = not remove
- -- print(remove)
- button.toggleButton("Remove Book")
- end
- function runStuff(info)
- if remove == true then
- removeBook(info)
- else
- openPortal(info)
- end
- end
- function removeBook(info)
- local turt, slot = string.match(info, "(%d+):(%d+)")
- button.toggleButton(names[tonumber(turt)][tonumber(slot)])
- data = "remove"..tostring(slot)
- rednet.send(tonumber(turt), data)
- rednet.receive()
- button.toggleButton(names[tonumber(turt)][tonumber(slot)])
- remove=false
- button.toggleButton("Remove Book")
- sleep(4)
- checkNames()
- end
- function openPortal(info)
- local turt,slot = string.match(info, "(%d+):(%d+)")
- -- print(names[tonumber(turt)][tonumber(slot)])
- button.toggleButton(names[tonumber(turt)][tonumber(slot)])
- print(names[tonumber(turt)][tonumber(slot)])
- data = "books"..tostring(slot)
- rednet.send(tonumber(turt), data)
- rednet.receive()
- button.toggleButton(names[tonumber(turt)][tonumber(slot)])
- end
- function checkNames()
- button.flash("Rescan Turtles")
- for num, turt in pairs(turtles) do
- rednet.send(turt, "checkSlots")
- msg = ""
- while msg ~= "done" do
- id, msg, dist = rednet.receive()
- if msg == "getName" then
- m.clear()
- m.setCursorPos(5, 12)
- m.write("New book detected.")
- m.setCursorPos(5, 14)
- m.write("Please enter the name")
- m.setCursorPos(5, 16)
- m.write("On the computer")
- m.setCursorPos(5, 18)
- m.write("---->>")
- term.clear()
- term.write("Please enter a name for the new book: ")
- name = read()
- rednet.send(id, name)
- end
- end
- end
- getNames()
- fillTable()
- end
- function getClick()
- event, side, x,y = os.pullEvent()
- if event == "monitor_touch" then
- button.checkxy(x,y)
- elseif event == "redstone" then
- print("redstone")
- sleep(3)
- checkNames()
- end
- end
- fillTurtles()
- getNames()
- fillTable()
- while true do
- getClick()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement