refactored mining
This commit is contained in:
parent
00e6e045cf
commit
fdf83cfdaa
@ -65,7 +65,7 @@ local function getState()
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local function savePositionToFile()
|
local function savePos(prefix)
|
||||||
--swap modem with Pickaxe
|
--swap modem with Pickaxe
|
||||||
--by convention the chunkloader is always left, so that Tools are right
|
--by convention the chunkloader is always left, so that Tools are right
|
||||||
for i=1, 16 do
|
for i=1, 16 do
|
||||||
@ -77,14 +77,79 @@ local function savePositionToFile()
|
|||||||
turtle.equipRight()
|
turtle.equipRight()
|
||||||
posZ, posY, posX = gps.locate()
|
posZ, posY, posX = gps.locate()
|
||||||
sleep(1)
|
sleep(1)
|
||||||
basic.appendToFileNl("/brulijam/files/chests-turtle-miner-fibo.txt", "Chest at: " .. posX .. ", " .. posY .. ", " .. posZ)
|
if prefix == "Chest placed" then
|
||||||
networking.sendLog("all", "/brulijam/logs/chests-to-collect.txt", posX .. ", " .. posY .. ", " .. posZ)
|
posY = posY + 1
|
||||||
|
end
|
||||||
|
basic.appendToFileNl("/brulijam/files/chests-turtle-miner-fibo.txt", "[" .. prefix .. "] " .. posX .. ", " .. posY .. ", " .. posZ)
|
||||||
|
networking.sendLog("all", "/brulijam/logs/chests-to-collect.txt", "[" .. prefix .. "] " .. posX .. ", " .. posY .. ", " .. posZ)
|
||||||
turtle.equipRight()
|
turtle.equipRight()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function inventoryRework()
|
||||||
|
chestAvailable = false
|
||||||
|
chestSlot = 0
|
||||||
|
spaceAvailable = false
|
||||||
|
|
||||||
|
for i=1, 16 do
|
||||||
|
turtle.select(i)
|
||||||
|
itemDetail = turtle.getItemDetail()
|
||||||
|
if itemDetail ~= nil then
|
||||||
|
if itemDetail.name == "minecraft:coal" then
|
||||||
|
turtle.refuel()
|
||||||
|
spaceAvailable = true
|
||||||
|
elseif itemDetail.name == "minecraft:chest" then
|
||||||
|
chestAvailable = true
|
||||||
|
chestSlot = i
|
||||||
|
else --check if item can be thrown away
|
||||||
|
keepItem = false
|
||||||
|
for j=0, #keepList do
|
||||||
|
if itemDetail.name == keepList[j] then
|
||||||
|
keepItem = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if not keepItem then
|
||||||
|
turtle.dropDown()
|
||||||
|
spaceAvailable = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else --at least one slot of space remaining
|
||||||
|
spaceAvailable = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--store items away
|
||||||
|
if not spaceAvailable and chestAvailable then
|
||||||
|
turtle.up()
|
||||||
|
basic.secureDigUp()
|
||||||
|
turtle.up()
|
||||||
|
basic.secureDigUp()
|
||||||
|
turtle.select(chestSlot)
|
||||||
|
turtle.placeUp()
|
||||||
|
savePos("Chest placed")
|
||||||
|
|
||||||
|
for k=1, 16 do
|
||||||
|
turtle.select(i)
|
||||||
|
itemDetail = turtle.getItemDetail()
|
||||||
|
if itemDetail ~= nil then
|
||||||
|
if itemDetail.name ~= "minecraft:chest" and itemDetail.name ~= "computercraft:wireless_modem_advanced" then
|
||||||
|
turtle.dropUp()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
turtle.down()
|
||||||
|
turtle.down()
|
||||||
|
end
|
||||||
|
|
||||||
|
if not spaceAvailable and not chestAvailable then
|
||||||
|
savePos("Turtle stopped")
|
||||||
|
shell.run("delete /brulijam/task.lua")
|
||||||
|
shell.run("reboot")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
local function clearInventory()
|
local function clearInventory()
|
||||||
for i=1, 16 do
|
for i=1, 16 do
|
||||||
@ -134,7 +199,7 @@ local function storeItems()
|
|||||||
turtle.up()
|
turtle.up()
|
||||||
basic.secureDigUp()
|
basic.secureDigUp()
|
||||||
turtle.placeUp()
|
turtle.placeUp()
|
||||||
savePositionToFile()
|
savePos()
|
||||||
chestAvailable = true
|
chestAvailable = true
|
||||||
break
|
break
|
||||||
elseif i == 16 then
|
elseif i == 16 then
|
||||||
@ -224,7 +289,8 @@ local function mineRow()
|
|||||||
basic.secureDigUp()
|
basic.secureDigUp()
|
||||||
basic.secureDigDown()
|
basic.secureDigDown()
|
||||||
|
|
||||||
clearInventory()
|
--clearInventory()
|
||||||
|
--inventoryRework()
|
||||||
|
|
||||||
--check current mining step for ore
|
--check current mining step for ore
|
||||||
turtle.up()
|
turtle.up()
|
||||||
@ -235,8 +301,9 @@ local function mineRow()
|
|||||||
recursiveOreMining()
|
recursiveOreMining()
|
||||||
turtle.up()
|
turtle.up()
|
||||||
|
|
||||||
clearInventory()
|
inventoryRework()
|
||||||
checkInventory()
|
--clearInventory()
|
||||||
|
--checkInventory()
|
||||||
|
|
||||||
--save path progress
|
--save path progress
|
||||||
state["dataCurrentPathProgress"] = i+1
|
state["dataCurrentPathProgress"] = i+1
|
||||||
|
@ -54,6 +54,7 @@ local function placeTree()
|
|||||||
if itemDetail.name == "minecraft:spruce_sapling" then
|
if itemDetail.name == "minecraft:spruce_sapling" then
|
||||||
local blockFound, blockData = turtle.inspect()
|
local blockFound, blockData = turtle.inspect()
|
||||||
if not blockFound then
|
if not blockFound then
|
||||||
|
sleep(3)
|
||||||
turtle.up()
|
turtle.up()
|
||||||
turtle.forward()
|
turtle.forward()
|
||||||
turtle.suckDown()
|
turtle.suckDown()
|
||||||
|
Loading…
Reference in New Issue
Block a user