絶対に失敗しないタートルです
タートルのスロットのアイテムの配置
必須項目となります、アイテム数が多いと後で回収する必要があります
プログラムをスタート
燃料を補給してチェストとタートルを配置
無限ループを開始
前に行くときは無限ループを使い位置ずれを防止
--####絶対前に行く関数
function DefinitelyForward()
if turtle.forward() then
else
while true do
turtle.dig()
if turtle.forward() then
break
end
end
end
end
チェストから各アイテムを入手するまで待機、60秒毎にチェストを確認
燃料レベルが300より少なくなるとタートルは燃料を補給
--####燃料補給
if turtle.getFuelLevel()<300 then
turtle.select(1)
turtle.suckDown()
turtle.refuel()
end
スロット1に木炭
スロット2.3にジャングルの苗木
スロット4~16までに骨粉が入ります
アイテムがすべて揃うまで待機します
--####骨粉補給
DefinitelyForward()
DefinitelyForward()
for Slot=4,16 do
turtle.select(Slot)
if turtle.getItemSpace(Slot)>0 then
while true do
if turtle.suckDown(64) then
break
else
os.sleep(Sleep)
print("BoneMeal_Supply:OsSleep",Sleep,"ms")
end
end
end
end
スタック単位で入手が完了したら16個のチェストに分配します
ひとつのチェストの分配量
木炭4個
ジャングルの苗木8個
骨粉52個
骨粉を6~7回の散布で苗木が成長すると想定しています
--####アイテム分配数の関数
function Distribution()
turtle.select(1)
for Slot=1,1 do
turtle.select(Slot)
turtle.dropDown(4)
end
for Slot=2,3 do
turtle.select(Slot)
turtle.dropDown(4)
end
for Slot=4,16 do
turtle.select(Slot)
turtle.dropDown(4)
end
end
アイテムの分配が終わると原木だけを回収します
タートルは16スロットなので1回の処理で8個のラージチェストの回収x2を行います
原木以外は入手してもドロップします
--####原木回収のスロット関数
function Collect()
for A=1,16 do
turtle.select(A)
turtle.suckDown()
end
for A=1,16 do
turtle.select(A)
local Slot=turtle.getItemDetail()
if Slot then
if Slot.name=="minecraft:log" then
else
turtle.dropDown()
end
end
end
end
原木を入れるチェストに原木を入れます
これを2回繰り返します
複数タートルでの自動植林 プログラム1
1.のプログラムはここから
--####チェスト設置、タートル設置、分配輸送プログラム
local Sleep=60
--####チェスト設置の関数
function PlaceDownChest()
turtle.placeDown()
turtle.forward()
turtle.forward()
turtle.placeDown()
end
--####チェスト設置
turtle.select(1)
turtle.refuel()
turtle.up()
turtle.select(5)
for A=1,7 do
for A=1,3 do
PlaceDownChest()
end
turtle.turnRight()
turtle.forward()
turtle.turnRight()
for A=1,3 do
PlaceDownChest()
end
turtle.turnLeft()
turtle.forward()
turtle.forward()
turtle.turnLeft()
end
for A=1,7 do
PlaceDownChest()
end
--####原木輸送タートルの設置
turtle.forward()
turtle.turnRight()
turtle.select(9)
turtle.placeDown()
turtle.select(2)
turtle.dropDown()
turtle.select(7)
turtle.dropDown()
turtle.forward()
--####アイテム輸送タートルの設置
turtle.select(9)
turtle.placeDown()
turtle.select(3)
turtle.dropDown()
turtle.select(8)
turtle.dropDown()
turtle.turnRight()
turtle.forward()
--####チェストの設置
turtle.select(6)
for A=1,7 do
PlaceDownChest()
end
turtle.turnRight()
--####タートル設置の関数
function PlaceDownTurtle()
turtle.forward()
turtle.forward()
turtle.placeDown()
end
--####列の移動の関数
function NextLine()
turtle.turnRight()
turtle.forward()
turtle.turnRight()
turtle.forward()
turtle.placeDown()
end
--####タートル設置
turtle.select(9)
PlaceDownTurtle()
for A=1,7 do
turtle.forward()
PlaceDownTurtle()
end
NextLine()
for A=1,7 do
turtle.forward()
turtle.forward()
turtle.forward()
turtle.placeDown()
end
turtle.forward()
turtle.turnLeft()
for A=1,3 do
turtle.forward()
end
turtle.turnLeft()
PlaceDownTurtle()
for A=1,7 do
turtle.forward()
PlaceDownTurtle()
end
NextLine()
for A=1,7 do
turtle.forward()
turtle.forward()
turtle.forward()
turtle.placeDown()
end
--####苗木回収タートルの設置
turtle.forward()
turtle.forward()
turtle.placeDown()
turtle.select(4)
turtle.dropDown()
turtle.back()
turtle.turnLeft()
turtle.forward()
--####絶対前に行く関数
function DefinitelyForward()
if turtle.forward() then
else
while true do
turtle.dig()
if turtle.forward() then
break
end
end
end
end
--####アイテム輸送の無限ループ
while true do
DefinitelyForward()
DefinitelyForward()
--####燃料補給
if turtle.getFuelLevel()<300 then
turtle.select(1)
turtle.suckDown()
turtle.refuel()
end
--####木炭補給
turtle.select(1)
turtle.suckDown()
if turtle.getItemSpace(1)>0 then
while true do
if turtle.suckDown(64) then
break
else
os.sleep(Sleep)
print("Coal_Supply:OsSleep",Sleep,"ms")
end
end
end
--####苗木補給
DefinitelyForward()
DefinitelyForward()
for Slot=2,3 do
turtle.select(Slot)
if turtle.getItemSpace(Slot)>0 then
while true do
if turtle.suckDown(64) then
break
else
os.sleep(Sleep)
print("Sapling_Supply:OsSleep",Sleep,"ms")
end
end
end
end
--####骨粉補給
DefinitelyForward()
DefinitelyForward()
for Slot=4,16 do
turtle.select(Slot)
if turtle.getItemSpace(Slot)>0 then
while true do
if turtle.suckDown(64) then
break
else
os.sleep(Sleep)
print("BoneMeal_Supply:OsSleep",Sleep,"ms")
end
end
end
end
turtle.turnRight()
turtle.turnRight()
for A=1,6 do
DefinitelyForward()
end
turtle.turnRight()
--####アイテム分配数の関数
function Distribution()
turtle.select(1)
for Slot=1,1 do
turtle.select(Slot)
turtle.dropDown(4)
end
for Slot=2,3 do
turtle.select(Slot)
turtle.dropDown(4)
end
for Slot=4,16 do
turtle.select(Slot)
turtle.dropDown(4)
end
end
--####アイテムの分配処理
Distribution()
for A=1,7 do
for A=1,3 do
DefinitelyForward()
end
Distribution()
end
turtle.turnLeft()
for A=1,4 do
DefinitelyForward()
end
turtle.turnLeft()
Distribution()
for A=1,7 do
for A=1,3 do
DefinitelyForward()
end
Distribution()
end
turtle.turnLeft()
for A=1,4 do
DefinitelyForward()
end
--####原木回収のスロット関数
function Collect()
for A=1,16 do
turtle.select(A)
turtle.suckDown()
end
for A=1,16 do
turtle.select(A)
local Slot=turtle.getItemDetail()
if Slot then
if Slot.name=="minecraft:log" then
else
turtle.dropDown()
end
end
end
end
--####原木回収
for A=1,2 do
turtle.turnLeft()
Collect()
for A=1,7 do
for A=1,3 do
turtle.suck()
DefinitelyForward()
end
Collect()
end
turtle.turnLeft()
turtle.turnLeft()
for A=1,21 do
DefinitelyForward()
end
turtle.turnLeft()
--####原木をチェストに入れる
for A=1,8 do
DefinitelyForward()
end
for A=1,16 do
turtle.select(A)
turtle.dropDown()
end
turtle.turnRight()
turtle.turnRight()
for A=1,8 do
DefinitelyForward()
end
--####原木回収
for A=1,4 do
DefinitelyForward()
end
turtle.turnRight()
Collect()
for A=1,7 do
for A=1,3 do
turtle.suck()
DefinitelyForward()
end
Collect()
end
turtle.turnLeft()
turtle.turnLeft()
for A=1,21 do
DefinitelyForward()
end
turtle.turnLeft()
for A=1,4 do
DefinitelyForward()
end
--####原木をチェストに入れる
for A=1,8 do
DefinitelyForward()
end
for A=1,16 do
turtle.select(A)
turtle.dropDown()
end
turtle.turnRight()
turtle.turnRight()
for A=1,8 do
DefinitelyForward()
end
turtle.turnRight()
turtle.turnRight()
end
end
0 件のコメント:
コメントを投稿