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
¨args={...} -- Basicaly write *yourprogram* CubeDepth CubeWidth CubeHeight - for example | mine 2 2 | mines out cube 2x2x1 x=tonumber(args[1]) -- Takes negative dimensions in all directions too! if x == nil then x=1 end y=tonumber(args[2]) if y == nil then y=1 end z=tonumber(args[3]) if z == nil then z=1 end moves=0 -- Few functions so that the code is "easier" to code (this mainly includes weird exceptions and failsafes) function midPrint(text,color) term.setBackgroundColor(color) term.clear() r,t=term.getSize() t=t/2+1 r=(r/2)-(string.len(text)/2)+1 term.setCursorPos(r,t) print(text) end function Forward() while not turtle.detect() and not turtle.forward() do midPrint("Blocked!",colors.red) end end function Dig() while turtle.detect() do turtle.dig() end end function Up() while not turtle.detectUp() and not turtle.up() do midPrint("Blocked!",colors.red) end end function DigUp() while turtle.detectUp() do turtle.digUp() end end function Down() while not turtle.detectDown() and not turtle.down() do midPrint("Blocked!",colors.red) end end function DigDown() while turtle.detectDown() do turtle.digDown() end end local yOdd=false -- Negative coords logic conversion if z<0 then Zneg=true z=z*(-1) end if y<0 and x>0 then turtle.turnLeft() Ymem=y y=x x=Ymem*(-1) elseif y<0 and x<0 then turtle.turnLeft(2) yOdd=true Ymem=y y=x*(-1) x=Ymem*(-1) elseif y>0 and x<0 then turtle.turnRight() Ymem=y y=x*(-1) x=Ymem end -- Main loop if turtle.getFuelLevel()<(x*y*z) then local z=16 x=turtle.getItemDetail() while turtle.select(z) do if turtle.getItemDetail() then if (tostring(turtle.getItemDetail().name)=="minecraft:coal") then break end end z=z-1 if z==0 then z=16 end end while (turtle.getItemCount())<(((x*y*z)//100)+1) do midPrint("Not enough Fuel!",colors.green) end turtle.refuel(((x*y*z)//100)+1) end local l=false for i=z-1,0,-1 do for m=y-1,1,-1 do for n=x-1,1,-1 do Dig() Forward() moves=moves+1 midPrint((tostring((moves/(x*y*z))*100).."%"),colors.green) end if not yOdd then if not l then yOdd=true turtle.turnRight() end if x==1 and not l then yOdd=false l=true end Dig() Forward() moves=moves+1 midPrint((tostring((moves/(x*y*z))*100).."%"),colors.green) if not l then turtle.turnRight() end else yOdd=false turtle.turnLeft() Dig() Forward() moves=moves+1 midPrint((tostring((moves/(x*y*z))*100).."%"),colors.green) turtle.turnLeft() end end for n=x-1,1,-1 do Dig() Forward() moves=moves+1 midPrint((tostring((moves/(x*y*z))*100).."%"),colors.green) end if i>0 then if Zneg then DigDown() Down() moves=moves+1 midPrint((tostring((moves/(x*y*z))*100).."%"),colors.green) if x>1 or y>1 then turtle.turnLeft() turtle.turnLeft() end else DigUp() Up() moves=moves+1 midPrint((tostring((moves/(x*y*z))*100).."%"),colors.green) if x>1 or y>1 then turtle.turnLeft() turtle.turnLeft() end end end end midPrint("Complete",colors.blue) term.setCursorPos(1,1)
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)