Posted 15 October 2012 - 07:13 PM
hey i found out that when my turtles are full with items and i (player) unloads the chunk it just disappears
heres my code:
heres my code:
Spoiler
xCoord = -164
zCoord = 195
yCoord = 72
xQuarry = 999
zQuarry = 999
yQuarry = 150
xProgress = 999
zProgress = 999
yProgress = 150
oProgress = 1
xHome = xCoord
zHome = zCoord
yHome = yCoord
yTravel = 85
orientation = 4
orientations = {"north", "east", "south", "west"}
zDiff = {-1, 0, 1, 0}
xDiff = {0, 1, 0, -1}
lineLength = 2
lines = 3
yMin = 999
function inventoryFull()
turtle.select(9)
full = turtle.getItemCount(9) > 0
turtle.select(1)
return full
end
function left()
orientation = orientation - 1
orientation = (orientation - 1) % 4
orientation = orientation + 1
turtle.turnLeft()
end
function right()
orientation = orientation - 1
orientation = (orientation + 1) % 4
orientation = orientation + 1
turtle.turnRight()
end
function moveForward()
xCoord = xCoord + xDiff[orientation]
zCoord = zCoord + zDiff[orientation]
turtle.dig()
moved = false
while not(moved) do
moved = turtle.forward()
end
end
function moveUp()
yCoord = yCoord + 1
turtle.digUp()
moved = false
while not(moved) do
moved = turtle.up()
end
end
function moveDown()
yCoord = yCoord - 1
turtle.digDown()
moved = false
while not(moved) do
moved = turtle.down()
end
if yMin > yCoord then
yMin = yCoord
end
end
function look(direction)
while direction ~= orientations[orientation] do
right()
end
end
function goto(xTarget, zTarget, yTarget)
while yTarget < yCoord do
moveDown()
end
while yTarget > yCoord do
moveUp()
end
if xTarget < xCoord then
look("west")
while xTarget < xCoord do
moveForward()
end
end
if xTarget > xCoord then
look("east")
while xTarget > xCoord do
moveForward()
end
end
if zTarget < zCoord then
look("north")
while zTarget < zCoord do
moveForward()
end
end
if zTarget > zCoord then
look("south")
while zTarget > zCoord do
moveForward()
end
end
end
function returnItems()
xProgress = xCoord
zProgress = zCoord
yProgress = yCoord
oProgress = orientation
goto(xHome, zHome, yTravel)
goto(xHome, zHome, yHome)
for i = 1,9 do
turtle.select(i)
turtle.drop()
end
turtle.select(1)
goto(xProgress, zProgress, yTravel)
goto(xProgress, zProgress, yProgress)
look(orientations[oProgress])
end
function digLine()
for i = 1,lineLength do
if inventoryFull() then
returnItems()
end
moveForward()
end
end
function digLayer()
for i = 1,lines do
digLine()
if (i%2) == 1 and i < lines then
left()
moveForward()
left()
elseif i < lines then
right()
moveForward()
right()
end
end
goto(xQuarry, zQuarry, yCoord)
look("north")
moveDown()
end
function digQuarry(xTarget, zTarget, yTarget)
xQuarry = xTarget
zQuarry = zTarget
yQuarry = yTarget
goto(xQuarry, zQuarry, yTravel)
goto(xQuarry, zQuarry, yQuarry)
look("north")
while yMin > 7 do
digLayer()
end
goto(xQuarry, zQuarry, yQuarry)
yMin = 999
end
digQuarry(-170, 210, 70)