Not a member of Pastebin yet?
                        Sign Up,
                        it unlocks many cool features!                    
                - --Simplest miner v0.2
 - --17 Nov 27
 - -- pastebin get C93d6FX6 cm
 - -- delete cm
 - --************
 - --
 - --This mining program is filled with
 - --assumptions, generalizations, and
 - --bugs. I will update/maintain when
 - --possible. Feel free to suggest changes
 - --
 - --Written by : Keystyles
 - --************
 - --************
 - --Constants/Initialization
 - --************
 - ----Orientation (start location = 0,0,0)
 - local currX = 0
 - local currY = 0
 - local currZ = 0
 - local width = 15
 - --***********
 - --Functions
 - --***********
 - function checkJunk(name) --check the data from the inspect and return true if it's junk; add "--" before both lines to remove an entry
 - if name == "minecraft:stone" then
 - return false
 - elseif name == "minecraft:cobblestone" then
 - return false
 - elseif name == "minecraft:gravel" then
 - return false
 - elseif name == "minecraft:dirt" then
 - return false
 - elseif name == "minecraft:water" then
 - return false
 - elseif name == "minecraft:red_mushroom" then
 - return false
 - --elseif name == "minecraft:redstone_ore" then
 - -- return false
 - --elseif name == "minecraft:coal_ore" then
 - -- return false
 - elseif name == "ProjRed:Exploration:projectred.exploration.stone" then --Marble, need to find correct name*
 - return false
 - elseif name == "minecraft:sand" then
 - return false
 - elseif name == "minecraft:netherrack" then
 - return false
 - elseif name == "Botania:stone" then --this is all Botania stones; diorite, granite, etc
 - return false
 - elseif name == "Botania:mushroom" then --this is all Botania stones; diorite, granite, etc
 - return false
 - elseif name == "chisel:limestone" then
 - return false
 - elseif name == "chisel:andesite" then
 - return false
 - elseif name == "chisel:diorite" then
 - return false
 - elseif name == "chisel:granite" then
 - return false
 - elseif name == "chisel:marble" then
 - return false
 - elseif name == "BiomesOPlenty:flowers" then
 - return false
 - elseif name == "BiomesOPlenty:flowers2" then
 - return false
 - else
 - return true
 - end
 - end
 - function turtleUp()
 - x = turtle.up()
 - while x == false do
 - if turtle.digUp() then
 - x = turtle.up()
 - else
 - if turtle.inspectUp() then
 - if turtle.digUp() then
 - x=turtle.up()
 - else
 - return false
 - end
 - else
 - turtle.attackUp()
 - x = turtle.up()
 - end
 - end
 - end
 - return true
 - end
 - function turtleDown()
 - x = turtle.down()
 - while x == false do
 - if turtle.digDown() then
 - x = turtle.down()
 - else
 - if turtle.inspectDown() then
 - if turtle.digDown() then
 - x=turtle.down()
 - else
 - return false
 - end
 - else
 - turtle.attackDown()
 - x = turtle.down()
 - end
 - end
 - end
 - return true
 - end
 - function turtleForward()
 - x = turtle.forward()
 - while x == false do
 - if turtle.dig() then
 - x = turtle.forward()
 - else
 - if turtle.inspect() then
 - if turtle.dig() then
 - x=turtle.forward()
 - else
 - return false
 - end
 - else
 - turtle.attack()
 - x = turtle.forward()
 - end
 - end
 - end
 - return true
 - end
 - function check()
 - --Check down first, dig if necessary
 - local success, data = turtle.inspectDown()
 - if success then
 - if checkJunk(data.name) then
 - if data.name == "minecraft:flowing_lava" then
 - turtle.select(1)
 - turtle.placeDown()
 - turtle.refuel()
 - else
 - turtle.digDown()
 - end
 - end
 - end
 - --Check up second, ...
 - local success, data = turtle.inspectUp()
 - if success then
 - if checkJunk(data.name) then
 - if data.name == "minecraft:flowing_lava" then
 - turtle.select(1)
 - turtle.placeUp()
 - turtle.refuel()
 - else
 - turtle.digUp()
 - end
 - end
 - end
 - end
 - function inventoryClear()
 - for i=1, 16 do
 - turtle.select(i)
 - local data = turtle.getItemDetail()
 - if data then
 - if checkJunk(data.name) == false then
 - turtle.drop()
 - end
 - end
 - end
 - turtle.select(1)
 - end
 - function inventoryFull()
 - local count = 0
 - for i = 1,16 do
 - if turtle.getItemCount(i) > 0 then
 - count = count + 1
 - end
 - end
 - if count > 10 then
 - return true
 - else
 - return false
 - end
 - end
 - function inventoryUnload()
 - for i = 2, 16 do
 - turtle.select(i)
 - turtle.dropUp()
 - end
 - end
 - --************
 - --Main Loop
 - --************
 - ----Fuel
 - turtle.select(1)
 - turtle.refuel()
 - turtle.select(2)
 - turtle.refuel()
 - print(turtle.getFuelLevel())
 - ----Descend to bottom (bedrock +5)
 - while turtleDown() do
 - currY = currY - 1
 - end
 - print(currY)
 - --Move up to avoid non-flat bedrock
 - --for i = 1, 4 do
 - -- turtleUp()
 - -- currY = currY + 1
 - --end
 - --Mining Loop
 - inventoryClear()
 - while currY < -2 do --While you are in an acceptable mining range
 - for i = 1, width do --Mine one leg
 - turtleForward()
 - check()
 - end
 - inventoryClear()
 - turtle.turnRight() --Move right one
 - turtleForward()
 - currX = currX + 1
 - check()
 - turtle.turnRight()
 - for i = 1, width do --Mine return leg
 - turtleForward()
 - check()
 - end
 - if currX < width then --Move left one, or return to 0,0 if complete
 - inventoryClear()
 - turtle.turnLeft()
 - turtleForward()
 - currX = currX + 1
 - check()
 - turtle.turnLeft()
 - else
 - turtle.turnRight()
 - repeat
 - turtleForward()
 - currX = currX - 1
 - until currX == 0
 - turtle.turnRight()
 - for i = 1, 3 do --Move up three levels
 - turtleUp()
 - currY = currY + 1
 - end
 - inventoryClear() --Dump junk
 - if inventoryFull() then --Return to starting level and empty cargo is necessary
 - y = currY
 - print(y)
 - print(turtle.getFuelLevel())
 - while currY < 0 do
 - turtleUp()
 - currY = currY + 1
 - end
 - inventoryUnload()
 - while currY > y do
 - turtleDown()
 - currY = currY - 1
 - end
 - end
 - end
 - end
 - inventoryClear() --Dump junk
 - while currY < 0 do
 - turtleUp()
 - currY = currY + 1
 - end
 - inventoryUnload()
 - --************
 - --Rev history
 - --************
 - -- v0.1 - initial posting
 - -- v0.2 - fixed MANY issues, added inital fueling from slot2, increased inventoryClear frequency, added junk items, etc, etc, etc,
 
Advertisement
 
                    Add Comment                
                
                        Please, Sign In to add comment