Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- rednet.open("left")
- rednet.broadcast('computer: ' .. os.getComputerLabel(), 'debug')
- rednet.broadcast('Program Start', 'debug')
- function fr()
- local result = turtle.forward()
- rednet.broadcast("Moving Forward", "debug")
- rednet.broadcast(result, "debug")
- return(result)
- end
- function tl()
- local result = turtle.turnLeft()
- rednet.broadcast("Turning Left", "debug")
- rednet.broadcast(result, "debug")
- return(result)
- end
- function tr()
- local result = turtle.turnRight()
- rednet.broadcast("Turning Right", "debug")
- rednet.broadcast(result, "debug")
- return(result)
- end
- function ta()
- local result1 = turtle.turnRight()
- local result2 = turtle.turnRight()
- local result = false
- rednet.broadcast("Turn Around Bright Eyes", "debug")
- if (result1 and result2)
- then
- rednet.broadcast("true", "debug")
- result = true
- end
- return(result)
- end
- function bk()
- local result = turtle.back()
- rednet.broadcast("Moving Back", "debug")
- rednet.broadcast(result, "debug")
- return(result)
- end
- function up()
- local result = turtle.up()
- rednet.broadcast("Moving On Up!", "debug")
- rednet.broadcast(result, "debug")
- return(result)
- end
- function dn()
- local result = turtle.down()
- rednet.broadcast("Getting Down", "debug")
- rednet.broadcast(result, "debug")
- return(result)
- end
- function checkLeft()
- tl()
- local result = turtle.detect()
- rednet.broadcast("Check left", "debug")
- rednet.broadcast(result, "debug")
- return result
- end
- function replace(slot)
- local result1 = turtle.dig()
- local result2 = turtle.select(slot)
- local result3 = turtle.place()
- rednet.broadcast("Replacing...", "debug")
- -- rednet.send(2, "dig:" .. result1 .. " select:" .. result2 .. " place:" .. result3)
- end
- function nextDigit()
- local result1 = turtle.turnRight()
- local result2 = turtle.forward()
- local result3 = turtle.turnLeft()
- rednet.broadcast("Next Digit", "debug")
- -- rednet.send(2, "right:" .. result1 .. " fwd:" .. result2 .. " left:" .. result3)
- end
- function goHome()
- rednet.broadcast("Mama, I'm Coming Home", "debug")
- local floor = true
- while floor do floor = dn() end
- local count = 0
- while count <= 30 do
- if checkHome()
- then
- rednet.broadcast("found home, starting update", "debug")
- ta()
- return true
- else
- local success = fr()
- if success == false then
- local result = checkLeft()
- if result
- then
- ta()
- else
- fr()
- end
- end
- end
- count = count+1
- end
- rednet.broadcast("No path found. Halting.", "debug")
- return false
- end
- function checkHome()
- rednet.broadcast("Checking for home...", "debug")
- local has_block, data = turtle.inspect()
- if data.name == "minecraft:diorite"
- then
- rednet.broadcast("Home alone!", "debug")
- return true
- else
- rednet.broadcast("oh no! No home!", "debug")
- return false
- end
- end
- function updateScores(score1, score2)
- rednet.broadcast("Updating scores", "debug")
- ta()
- local result1 = checkHome()
- if result1 == false
- then
- local result2 = goHome()
- if result2 == false
- then
- rednet.broadcast("Update score failed.", "debug")
- return false
- end
- ta()
- end
- local scores = {}
- scores[1] = score1
- scores[2] = score2
- rednet.broadcast(scores[1], "debug")
- rednet.broadcast(scores[2], "debug")
- print(scores[1])
- print(scores[2])
- local length = {}
- length[1] = string.len(scores[1])
- length[2] = string.len(scores[2])
- rednet.broadcast("length1:" .. length[1], "debug")
- rednet.broadcast("length2:" .. length[2], "debug")
- local digits = {}
- for i=1, 8 do
- digits[i] = 1
- end
- digits[4] = string.sub(scores[1],string.len(scores[1])) + 3
- if string.len(scores[1]) > 1 then digits[3] = string.sub(scores[1], string.len(scores[1])-1, string.len(scores[1])-1) + 3 end
- if string.len(scores[1]) > 2 then digits[2] = string.sub(scores[1], string.len(scores[1])-2, string.len(scores[1])-2) + 3 end
- if string.len(scores[1]) > 3 then digits[1] = string.sub(scores[1], string.len(scores[1])-3, string.len(scores[1])-3) + 3 end
- digits[8] = string.sub(scores[2],string.len(scores[2])) + 3
- if string.len(scores[2]) > 1 then digits[7] = string.sub(scores[2], string.len(scores[2])-1, string.len(scores[2])-1) + 3 end
- if string.len(scores[2]) > 2 then digits[6] = string.sub(scores[2], string.len(scores[2])-2, string.len(scores[2])-2) + 3 end
- if string.len(scores[2]) > 3 then digits[5] = string.sub(scores[2], string.len(scores[2])-3, string.len(scores[2])-3) + 3 end
- ta()
- tr()
- fr()
- ta()
- up()
- up()
- replace(digits[1])
- nextDigit()
- replace(digits[2])
- nextDigit()
- replace(digits[3])
- nextDigit()
- replace(digits[4])
- tr()
- replace(digits[5])
- nextDigit()
- replace(digits[6])
- nextDigit()
- replace(digits[7])
- nextDigit()
- replace(digits[8])
- dn()
- dn()
- tl()
- fr()
- fr()
- fr()
- fr()
- tl()
- fr()
- fr()
- fr()
- checkHome()
- ta()
- end
- function waitMsg()
- local ID, msg = rednet.receive()
- print(msg)
- rednet.broadcast("received: " .. msg, "debug")
- if msg=="fr" then fr() end
- if msg=="tl" then tl() end
- if msg=="tr" then tr() end
- if msg=="ta" then ta() end
- if msg=="bk" then bk() end
- if msg=="goHome" then goHome() end
- if msg=="checkHome"
- then
- if checkHome()
- then
- print("already Home")
- rednet.broadcast("alread home", "debug")
- end
- end
- if msg=="replace" then replace() end
- if msg=="updateScores"
- then
- local score1 = math.random(0,9999)
- local score2 = math.random(0,9999)
- updateScores(score1, score2)
- end
- if string.find(msg, "pushScores")
- then
- local args = {}
- local i = 1
- for token in string.gmatch(msg, "[^%s]+") do
- args[i] = token
- i=i+1
- end
- updateScores(args[2], args[3])
- end
- rednet.broadcast("success", "debug")
- end
- while true do waitMsg() end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement