-- Clearing Terminal
term.clear()
term.setCursorPos(1,1)
-- Setting up Variables
local tArgs = { ... }
local fuel = 1
local torch = 2
local block = 3
local gone = 0
if #tArgs ~= 1 then
-- Missing Length Argument
print("Usage: Branch <length>")
print("Slot 1: Fuel")
print("Slot 2: Torches")
print("Slot 3: Blocks")
error()
end
local length = tArgs[1]
--Missing Items Check
if (turtle.getItemCount(fuel) < 1 or turtle.getItemCount(torch) < 1 or turtle.getItemCount(block) < 1) then
print("Missing Critical Item")
error()
end
-- Fuel Checking Function
function tFuel(moved,f)
if turtle.getFuelLevel() < (moved + 10) then
turtle.select(f)
if not turtle.refuel(1) then
print("Need Fuel")
finished(moved)
end
end
end
-- Drop Items Function
function dump()
print("Dumping Goods")
for i = 4, 16 do
turtle.select(i)
turtle.drop()
end
end
--Checks for full inventory
function slotCheck(moved)
local slots = 0
for i = 4, 16 do
turtle.select(i)
if turtle.getItemCount(i) > 0 then slots = slots + 1 end
end
if slots == 12 then finished(moved) end
end
-- Return Function
function finished(m)
print("Returning after " .. m + 1 .. " blocks")
turtle.up()
turtle.turnRight()
turtle.turnRight()
for i = 0, m do
turtle.forward()
end
turtle.down()
dump()
error()
end
--Check for Walls
function wallCheck(b)
turtle.turnRight()
if not turtle.detect() then
turtle.select(b)
turtle.place()
end
turtle.turnLeft()
turtle.turnLeft()
if not turtle.detect() then
turtle.select(b)
turtle.place()
end
turtle.turnRight()
end
print("Starting tunnel " .. length .. " blocks long")
for g = 1, length, 2 do
tFuel(g, fuel)
while turtle.detect() do
turtle.dig()
sleep(0.5)
end
turtle.forward()
if not turtle.detectDown() then
turtle.select(block)
turtle.placeDown()
end
wallCheck(block)
while turtle.detectUp() do
turtle.digUp()
sleep(0.5)
end
turtle.up()
wallCheck(block)
if g%5 == 0 then
turtle.select(torch)
turtle.placeDown()
end
while turtle.detectUp() do
turtle.digUp()
sleep(0.5)
end
turtle.up()
wallCheck(block)
if not turtle.detectUp() then
turtle.select(block)
turtle.placeUp()
end
while turtle.detect() do
turtle.dig()
sleep(0.5)
end
turtle.forward()
wallCheck(block)
if not turtle.detectUp() then
turtle.select(block)
turtle.placeUp()
end
turtle.digDown()
turtle.down()
wallCheck(block)
turtle.digDown()
turtle.down()
wallCheck(block)
if not turtle.detectDown() then
turtle.select(block)
turtle.placeDown()
end
gone = g
slotCheck(gone)
end
finished(gone)
Friday, December 28, 2012
New Turtle Script
So I've been doing some work with turtles since the update of Feed The Beast and I have what appears to be a fairly decent script worked out. It has many possible uses. I originally intended to use it to do branches for my mine, but it also works as a tunnel maker or bridge builder. It digs a 2 tall tunnel and makes sure there's walls, floors, and ceilings. You feed it with fuel, torches and blocks and it will go as far as it can. If it runs out of blocks it could have some issues. Below is the code.
Labels:
computercraft,
feed the beast,
mindcrack,
mine,
Minecraft,
mining,
program,
script,
turtle
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment