Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
tempVal = 0 debugText = true --set this to false to not see $dev messages mainMenu() --program helpers function debug(message) --does $dev messages if debugText then print("$"+message) else end end function print(message) --prints message with new line io.write(message+"\n") end function cls() --clear screen term.clear() term.setCursorPos(1,1) end function pause() --system(pause) print("Press enter to continue...") io.read() end --movement functions function turnAround() turtle.turnRight() turtle.turnRight() end function KP7() --forward left turtle.turnLeft() turtle.forward() turtle.turnRight() end function KP9() --forward right turtle.turnRight() turtle.forward() turtle.turnLeft() end function KP8() turtle.forward() end function KP2() turtle.back() end function KP1() turtle.turnLeft() turtle.forward() turtle.turnRight() turtle.back() end function KP3() turtle.turnRight() turtle.forward() turtle.turnLeft() turtle.back() end function KP4() --strafe left LT() KP8() RT() end function KPA() turtle.up() end function KPD() turtle.down() end function RT() turtle.turnRight() end function LT() turtle.turnLeft() end function mainMenu() cls() local prompt = -1 debug("reset prompt") print("===MAIN MENU===") print("What to do next?") print("(Choose any option not listed to exit)") print("0. Refuel 6. Hollow Box") print("1. Line 7. Solid Block") print("2. Fence 8. Move") print("3. Pad 9. Color by Number") print("4. Wall 10. Quarry") print("5. Circle X. Exit") io.write(">") prompt=io.read() if prompt == 0 then fillFuel() mainMenu() elseif prompt == 1 then lineMenu() elseif prompt == 2 then fenceMenu() elseif prompt == 3 then padMenu() elseif prompt == 4 then wallMenu() elseif prompt == 5 then circleMenu() elseif prompt == 6 then boxMenu() elseif prompt == 7 then cubeMenu() elseif prompt == 8 then moveMenu() elseif prompt == 9 then pixelArtMenu() elseif prompt == 10 then quarryMenu() else end end function fillFuel() cls() debug("filling fuel") local iterations = 0 while(iterations<16) do turtle.select(iterations+1) debug("selected "+turtle.getSelectedSlot()) if (not turtle.refuel(64)) then debug(iterations+": not fuel") else end iterations=iterations+1 debug("iteration #"+iterations) end debug("done refueling") pause() end function lineMenu() cls() local prompt = -1 debug("reset prompt") local iterations = 0 debug("reset iterations") print("Above or below?") print("1. Above") print("2. Below") io.write(">") prompt = io.read() print(" ") print("How far?") io.write(">") iterations = io.read() if tonumber(iterations)==nil then debug("bad iterations") print("Not a number. Returning...") pause() elseif tonumber(prompt)==nil then debug("bad prompts") print("Not a number. Returning...") pause() elseif prompt==1 then debug("lineAbove "+iterations) lineAbove(iterations) pause() elseif prompt==2 then debug("lineBelow "+iterations) lineBelow(iterations) pause() else debug("bad prompt") print("Returning...") pause() mainMenu() end end function lineAbove(distance) local iterations = 0 if (distance > turtle.getSelectedSlot()) then lineAbove(turtle.getSelectedSlot()) print("Out of material. Which slot?") io.write(">") local prompt = io.read() if tonumber(prompt)==nil then print("Not a number. Cancelling...") pause() mainMenu() else turtle.select(prompt) lineAbove(distance-iterations) end else end local stock local fuel=turtle.getFuelLevel() while (iterations
turtle.getSelectedSlot()) then lineBelow(turtle.getSelectedSlot()) print("Out of material. Which slot?") io.write(">") local prompt = io.read() if tonumber(prompt)==nil then print("Not a number. Cancelling...") pause() mainMenu() else turtle.select(prompt) lineBelow(distance-iterations) end else end local stock local fuel=turtle.getFuelLevel() while (iterations
") varForward=io.read() if tonumber(varForward)==nil then print("Not a number. Returning to menu...") pause() mainMenu() else end print("Left or right?") print("1. Left\n2. Right") io.write(">") prompt = io.read() if tonumber(prompt)==nil then print("Not a number. Returning to menu...") pause() mainMenu() elseif prompt == 1 then leftTurn = true elseif prompt ~= 2 then print("Not a valid number. Returning to menu...") pause() mainMenu() else debug("setting LT to false just in case something stupid") leftTurn=false end print("How many long?") io.write(varForward+"x?\n>") varSideways=io.read() if tonumber(varSideways)==nil then print("Not a number. Returning to menu...") pause() mainMenu() else end print("Above or below?") print("1. Above\n2. Below") io.write(">") prompt = io.read() if tonumber(prompt)==nil then print("Not a number. Returning to menu...") pause() mainMenu() elseif prompt == 1 then boolUp = true elseif prompt ~= 2 then print("Not a valid number. Returning to menu...") pause() mainMenu() else end if boolUp then fenceAbove(varForward, varSideways, leftTurn) else fenceBelow(varForward, varSideways) end pause() mainMenu() end function fenceAbove(forward, sideways, turnLeft) lineAbove(forward) debug("leg 1 done") if turnLeft then LT() else RT() end lineAbove(sideways) debug("leg 2 done") if turnLeft then LT() else RT() end lineAbove(forward) debug("leg 3 done") if turnLeft then LT() else RT() end lineAbove(sideways) debug("leg 4 done") KP8()--start pos, no place if turnLeft then LT() else RT() end end function fenceBelow(forward, sideways, turnLeft) lineBelow(forward) debug("leg 1 done") if turnLeft then LT() else RT() end lineBelow(sideways) debug("leg 2 done") if turnLeft then LT() else RT() end lineBelow(forward) debug("leg 3 done") if turnLeft then LT() else RT() end lineBelow(sideways) debug("leg 4 done") KP8() --return to start pos if turnLeft then LT() else RT() end --return to start rot end function padMenu() local varForward=0 local varSideways=0 local varUp=false local iterations=0 local leftTurn=false local prompt cls() print("How far forward?") io.write(">") varForward=io.read() if tonumber(varForward)==nil then print("Not a number. Returning to menu...") pause() mainMenu() else end print("Left or right?") print("1. Left\n2. Right") io.write(">") prompt = io.read() if tonumber(prompt)==nil then print("Not a number. Returning to menu...") pause() mainMenu() elseif prompt == 1 then leftTurn = true elseif prompt ~= 2 then print("Not a valid number. Returning to menu...") pause() mainMenu() else debug("setting LT to false just in case something stupid") leftTurn=false end print("How many long?") io.write(varForward+"x?\n>") varSideways=io.read() if tonumber(varSideways)==nil then print("Not a number. Returning to menu...") pause() mainMenu() else end print("Above or below?") print("1. Above\n2. Below") io.write(">") prompt = io.read() if tonumber(prompt)==nil then print("Not a number. Returning to menu...") pause() mainMenu() elseif prompt == 1 then varUp = true elseif prompt ~= 2 then print("Not a valid number. Returning to menu...") pause() mainMenu() end if varUp then padAbove(varForward, varSideways, leftTurn) else padBelow(varForward, varSideways, leftTurn) end pause() mainMenu() end function padAbove(forward, sideways, turnLeft) local smaller if (forward
2 then fenceAbove(forward-2, sideways-2, turnLeft) else end if turnLeft then KP3() else KP1() end end function padBelow(forward, sideways, turnLeft) local smaller if (forward
2 then fenceAbove(forward-2, sideways-2, turnLeft) else end if turnLeft then KP3() else KP1() end end function cubeMenu() local varForward=0 local varSideways=0 local varHeight=0 local boolUp=true local iterations=0 local leftTurn=false local prompt cls() print("How far forward?") io.write(">") varForward=io.read() if tonumber(varForward)==nil then print("Not a number. Returning to menu...") pause() mainMenu() else end print("Left or right?") print("1. Left\n2. Right") io.write(">") prompt = io.read() if tonumber(prompt)==nil then print("Not a number. Returning to menu...") pause() mainMenu() elseif prompt == 1 then leftTurn = true elseif prompt ~= 2 then print("Not a valid number. Returning to menu...") pause() mainMenu() else debug("setting LT to false just in case something stupid") leftTurn=false end print("How many long?") io.write(varForward+"x?\n>") varSideways=io.read() if tonumber(varSideways)==nil then print("Not a number. Returning to menu...") pause() mainMenu() else end print("Above or below?") print("1. Work Up\n2. Work Down") io.write(">") prompt = io.read() if tonumber(prompt)==nil then print("Not a number. Returning to menu...") pause() mainMenu() elseif prompt == 1 then boolUp = true elseif prompt ~= 2 then print("Not a valid number. Returning to menu...") pause() mainMenu() end print("How many tall?") io.write(varForward+"x"+varSideways+"x?\n>") varHeight=io.read() if tonumber(varHeight)==nil then print("Not a number. Returning to menu...") pause() mainMenu() else end if boolUp then cubeBelow(varForward, varSideways, varHeight, leftTurn) else cubeAbove(varForward, varSideways, varHeight, leftTurn) end pause() mainMenu() end function cubeAbove(varForward, varSideways, varHeight, leftTurn) local iterations = 0 while iterations < varHeight do padAbove(varForward, varSideways, leftTurn) debug("finished iteration "+iterations) iterations = iterations + 1 KPD() end KP2() debug("backing out") while iterations > 0 do KPA() debug("ascended from "+iterations) iterations = iterations -1 end pause() end function cubeBelow(varForward, varSideways, varHeight, leftTurn) local iterations = 0 while iterations < varHeight do padAbove(varForward, varSideways, leftTurn) debug("finished iteration "+iterations) iterations = iterations + 1 KPA() end KP2() debug("backing out") while iterations > 0 do KPD() debug("descended from "+iterations) iterations = iterations -1 end pause() end function boxMenu() local varForward=0 local varSideways=0 local varHeight=0 local boolUp=true local iterations=0 local leftTurn=false local prompt cls() print("How far forward?") io.write(">") varForward=io.read() if tonumber(varForward)==nil then print("Not a number. Returning to menu...") pause() mainMenu() else end print("Left or right?") print("1. Left\n2. Right") io.write(">") prompt = io.read() if tonumber(prompt)==nil then print("Not a number. Returning to menu...") pause() mainMenu() elseif prompt == 1 then leftTurn = true elseif prompt ~= 2 then print("Not a valid number. Returning to menu...") pause() mainMenu() else debug("setting LT to false just in case something stupid") leftTurn=false end print("How many long?") io.write(varForward+"x?\n>") varSideways=io.read() if tonumber(varSideways)==nil then print("Not a number. Returning to menu...") pause() mainMenu() else end print("Above or below?") print("1. Work Up\n2. Work Down") io.write(">") prompt = io.read() if tonumber(prompt)==nil then print("Not a number. Returning to menu...") pause() mainMenu() elseif prompt == 1 then boolUp = true elseif prompt ~= 2 then print("Not a valid number. Returning to menu...") pause() mainMenu() end print("How many tall?") io.write(varForward+"x"+varSideways+"x?\n>") varHeight=io.read() if tonumber(varHeight)==nil then print("Not a number. Returning to menu...") pause() mainMenu() else end if boolUp then cubeBelow(varForward, varSideways, varHeight, leftTurn) else cubeAbove(varForward, varSideways, varHeight, leftTurn) end pause() mainMenu() end function boxAbove(varForward, varSideways, varHeight, leftTurn) local iterations = 0 padbove(varForward, varSideways, leftTurn) while iterations < varHeight-2 do fenceAbove(varForward, varSideways, leftTurn) debug("finished iteration "+iterations) iterations = iterations + 1 KPD() end padbove(varForward, varSideways, leftTurn) KP2() debug("backing out") while iterations > 0 do KPA() debug("ascended from "+iterations) iterations = iterations -1 end pause() end function boxBelow(varForward, varSideways, varHeight, leftTurn) local iterations = 0 padBelow(varForward, varSideways, leftTurn) while iterations < varHeight-2 do fenceBelow(varForward, varSideways, leftTurn) debug("finished iteration "+iterations) iterations = iterations + 1 KPA() end padAbove(varForward, varSideways, leftTurn) KP2() debug("backing out") while iterations > 0 do KPD() debug("descended from "+iterations) iterations = iterations -1 end pause() end function circleMenu() print("Coming Soon!") pause() mainMenu() end function pixelArtMenu() print("Coming Soon") pause() mainMenu() end function wallMenu() print("Coming Soon!") pause() mainMenu() end function moveMenu() --0 down, 5 up print("Coming Soon!") pause() mainMenu() end function quarryMenu() print("Coming Soon!") pause() mainMenu() end
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)