Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- print("cTurtleOS 1.0")
- local args = {...}
- local command
- function string:split(delimiter)
- local result = { }
- local from = 1
- local delim_from, delim_to = string.find(self, delimiter, from)
- while delim_from do
- table.insert(result, string.sub(self, from, delim_from - 1))
- from = delim_to + 1
- delim_from, delim_to = string.find(self, delimiter, from)
- end
- table.insert(result, string.sub(self, from))
- return result
- end
- function isNumber(var)
- if (tonumber(var) ~= nil) then
- return true
- else
- return false
- end
- end
- function printUsage()
- print("Usage: <command> [arguments]")
- end
- function tryDig()
- while (turtle.detect()) do
- if (turtle.dig()) then
- sleep(0.5)
- return true
- else
- return false
- end
- end
- end
- function tryDigDown()
- while (turtle.detectDown()) do
- if (turtle.digDown()) then
- sleep(0.5)
- return true
- else
- return false
- end
- end
- end
- function tryDigUp()
- while (turtle.detectUp()) do
- if (turtle.digUp()) then
- sleep(0.5)
- return true
- else
- return false
- end
- end
- end
- function tryUp()
- while (not turtle.up()) do
- if (turtle.detectUp()) then
- if (not tryDigUp()) then
- return false
- end
- elseif (turtle.attackUp()) then
- else
- sleep(0.5)
- end
- end
- end
- function tryDown()
- while (not turtle.down()) do
- if (turtle.detectDown()) then
- if (not tryDigDown()) then
- return false
- end
- elseif (turtle.attackDown()) then
- else
- sleep(0.5)
- end
- end
- end
- function tryForward()
- while (not turtle.forward()) do
- if (turtle.detect()) then
- if (not tryDig()) then
- return false
- end
- elseif (turtle.attack()) then
- else
- sleep(0.5)
- end
- end
- end
- function tryRefuel()
- if (turtle.getFuelLevel() ~= "unlimited" and turtle.getFuelLevel() < 1) then
- for i = 1, 16 do
- if (turtle.getItemCount(n) > 0) then
- turtle.select(i)
- if (turtle.refuel(i)) then
- turtle.select(i)
- return true
- end
- end
- end
- else
- turtle.select(1)
- return false
- end
- end
- function strip(depth, width, height)
- for i = 1, depth do
- turtle.placeDown()
- tryRefuel()
- tryDig()
- tryForward()
- turtle.turnLeft()
- tryDig()
- tryUp()
- tryDig()
- tryUp()
- tryDig()
- turtle.turnRight()
- turtle.turnRight()
- tryDig()
- tryDown()
- tryDig()
- tryDown()
- tryDig()
- turtle.turnLeft()
- end
- end
- function stairs(depth)
- for i = 1, depth do
- turtle.placeDown()
- tryRefuel()
- tryDig()
- tryForward()
- turtle.turnLeft()
- tryDig()
- tryForward()
- turtle.turnRight()
- tryUp()
- tryDig()
- tryForward()
- turtle.turnRight()
- tryDig()
- tryForward()
- turtle.turnLeft()
- end
- end
- if (#args > 0) then
- command = args[1]
- if (command:lower() == "strip") then
- if (#args == 2) then
- if (isNumber(args[2])) then
- strip(args[2], 3, 3)
- else
- print("The depth must be a number")
- terminate()
- end
- else
- terminate()
- end
- elseif (command:lower() == "stairs") then
- if (#args == 2) then
- if (isNumber(args[2])) then
- stairs(args[2])
- else
- print("The depth must be a number")
- terminate()
- end
- else
- terminate()
- end
- end
- else
- printUsage()
- terminate()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement