I named the program mynwell. It's based on the setup direwolf20 did in his LP season 5 series. But I never have liked frames or overly complicated builds. Took me a little bit to figure out a way to do it but it now works and works fabulously. This mynwell will mine from whatever level you choose to start it at and mines to bedrock in just a handful of seconds. Then it retrieves it's equipment and moves forward, deploys the equipment and bam, your at bedrock again. It'll keep doing this for the 'length you choose. Then it'll mine back towards you, left or right, from the original straight forward path, also ming, if you've told it to mine, say, 500 length and 500 width. Additionally it will stop after using about 960 fuel to allow you to change out the Thermal Expansion Energy Cell with a freshly charged one. I included pastebin codes for each of the programs each turtle will need to function. Here's what you'll need to make it work.
1. Mining turtle (labeled)
2. Engineering turtle (labeled)
3. Ender Chest
4. Mining Well
5. Thermal Expansion Energy Cell (fully charged)
Once you have each of the turtle's retrieve each program it needs, simply run mynwell in the mining turtle and follow the instructions. I like to make a mystcraft age and mine about 5 blocks down and then release this. Some of the mystcraft ages negative affects only bother you if your exposed to the sky so by mining underground you get lots of goodies. This thing mines really fast.
If there's a problem let me know and I'll try to fix it. I made this for myself and it works flawlessly... mostly anyway... I was having issues with multi-levels of gravel but I think I got that kink worked out okay. The one thing I cant do anything about is if you shut the game/server down the turtles stop and need to be restarted. I hope someone likes this as much as I do. I am backing up my Ultimate ftb folder because I think sooner or later some mod author will nerf something to make this not work. Let me know what you think.
The code below is pastebin codes for easier retrieval of each script/program.
1. Mining turtle (labeled)
2. Engineering turtle (labeled)
3. Ender Chest
4. Mining Well
5. Thermal Expansion Energy Cell (fully charged)
Once you have each of the turtle's retrieve each program it needs, simply run mynwell in the mining turtle and follow the instructions. I like to make a mystcraft age and mine about 5 blocks down and then release this. Some of the mystcraft ages negative affects only bother you if your exposed to the sky so by mining underground you get lots of goodies. This thing mines really fast.
If there's a problem let me know and I'll try to fix it. I made this for myself and it works flawlessly... mostly anyway... I was having issues with multi-levels of gravel but I think I got that kink worked out okay. The one thing I cant do anything about is if you shut the game/server down the turtles stop and need to be restarted. I hope someone likes this as much as I do. I am backing up my Ultimate ftb folder because I think sooner or later some mod author will nerf something to make this not work. Let me know what you think.
The code below is pastebin codes for easier retrieval of each script/program.
Code:
-- Author: Truthowl
-- Makes turtle use a mining well and redstone energy cell to mine.
-- Requires an Engineering Turtle, Mining Turtle, Ender Chest,
-- Mining well, and a Thermal Expansion Energy Cell.
-- The Engineering Turtle was crafted with a Thermal Expansion Hammer.
-- Not sure if crafting with something else will work or not.
--
-- I made my mining turtle a chunk loading turtle as well.
-- That's not needed, but then you have to remain close or drop
-- your own chunk loader if you want to leave the area.
-- With this, you can even set your mynwell turtle to begin underground.
-- He/she will clear the workzone before placing the needed equipment.
-- Also, the turtle will backup 1 block to begin mining from
-- where you place him/her. So drop it from 2 blocks back or drop it
-- and move out of the way.
-- NOTE: Do not shut down your game while your mynwell turtle is running
-- They will stop and need to be restarted if you do.
--
-- You need to label both the mining and engineering turtles. I know,
-- that's obvious but thought I'd mention it anyway.
-- The code below is pastebin codes for easier retrieval of each script/program.
-- Okay the turtle's need the following programs.
--
-- Engineering Turtle --
-- myfuel - 6FJH87dt
-- collectit - GYCsY7rr
-- startup - TpZs1Mqm
-- ---------------------
-- Mining Turtle --
-- mynwell - xUtqQ73B(This program)
-- myfuel - 6FJH87dt
-- ---------------------
-- If you choose not to use the 'myfuel' program then you need to
-- comment it out from the programs. It simply reports remaining fuel.
-- However, you need both the startup and collectit programs for
-- the engineering turtle.
function instructions()
print("Place a Redstone Energy Cell in slot 1")
print("Place an ender chest in slot 2")
print("Place a Mining well in slot 3")
print("Place an Engineering turtle in slot 4")
end
function getDim()
print("Current fuel level = " .. turtle.getFuelLevel())
print("How far should I mine before returning?")
l = tonumber(read())
print("How wide should my mining be?")
w = tonumber(read())
term.write("Left(1) or Right(2)?")
mydir = read()
return {l, w, mydir}
end
function clearWorkZone()
while turtle.detect() do
turtle.dig()
sleep(0.5)
end
while not turtle.up() do
turtle.digUp()
end
while turtle.detect() do
turtle.dig()
sleep(0.5)
end
end
function forward()
while not turtle.forward() do
turtle.dig()
turtle.suck()
turtle.attack()
turtle.suck()
sleep(0.5)
end
end
function deploy()
while turtle.getItemCount(1) ~= 0 do
turtle.select(1)
turtle.place()
end
turtle.down()
while turtle.getItemCount(2) ~= 0 do
turtle.select(2)
turtle.placeUp()
end
while turtle.getItemCount(4) ~= 0 do
turtle.select(4)
turtle.transferTo(16)
end
while turtle.getItemCount(3) ~= 0 do
turtle.select(3)
while not turtle.place() do
turtle.dig()
sleep(0.5)
end
end
sleep(0.5)
end
function retrieve()
if turtle.getItemCount(1) > 0 then
print("Error, sleeping for 10,000")
sleeping(10000)
end
while turtle.getItemCount(2) == 0 do
turtle.select(1)
turtle.digUp()
turtle.transferTo(2)
end
while turtle.getItemCount(3) == 0 do
turtle.select(1)
turtle.dig()
turtle.transferTo(3)
end
while turtle.getItemCount(16) ~= 0 do
turtle.select(16)
turtle.place()
end
local engineer = peripheral.wrap("front")
while turtle.getItemCount(1) == 0 do
engineer.turnOn()
turtle.select(1)
while not turtle.suck() do
sleep(3)
end
end
while turtle.dig() == false do
sleep(0.1)
end
end
function scanMe()
turtle.select(1)
for i=1, 15 do
if turtle.getItemCount(i) > 0 then
return false
end
end
return true
end
function unload()
turtle.select(1)
while scanMe() == false do
for i=1,15 do
turtle.select(i)
if turtle.getItemCount(i) > 0 then
if turtle.getFuelLevel() < 1000 then
turtle.refuel()
end
turtle.dropUp()
sleep(0.1)
end
end
end
end
function mineLength(l)
for i=1, l do
clearWorkZone()
deploy()
sleep(6)
unload()
retrieve()
forward()
end
print("I have this much fuel left")
print(tostring(turtle.getFuelLevel()))
end
function turn(d,x)
if d == "1" then
turtle.turnLeft()
clearWorkZone()
deploy()
sleep(6)
unload()
retrieve()
forward()
turtle.turnLeft()
elseif d == "2" then
turtle.turnRight()
clearWorkZone()
deploy()
sleep(6)
unload()
retrieve()
forward()
turtle.turnRight()
else
print("You were supposed to type a direction(1/2).")
print ("But you typed " .. d .. " instead")
end
x = x + 1
return x
end
-- Main
local myt
-- x = starting point by width
local x = 1
instructions()
myt = getDim()
local ll = tonumber(myt[1])
local ww = tonumber(myt[2])
local dd = myt[3]
local bb --this will be opposite dd
local recharge = turtle.getFuelLevel() - 960
print ("Length will be = " .. ll)
print ("Width will be = " .. ww)
if dd == "1" then
bb = "2"
elseif dd == "2" then
bb = "1"
else
print("You were supposed to type a direction(1/2).")
print ("But you typed " .. dd .. " instead")
end
while not turtle.back() do
sleep(1)
end
mineLength(1)
if ww > x then
while x <= ww do
if turtle.getFuelLevel() <= recharge then
print("Waiting so you can change out the energy block")
waiting = read()
recharge = turtle.getFuelLevel() - 960
end
mineLength(ll)
if x == ww then
--print("Odd exit")
shell.run("myfuel")
return
else
x = turn(dd,x)
end
mineLength(ll)
if x >= ww then
--print("Even exit")
shell.run("myfuel")
return
else
x = turn(bb,x)
end
end
else
mineLength(ll)
end
print ("All Finished!")
shell.run("myfuel")