プログラムの流れ
前のチェストから燃料
上昇
農地へ移動
無限ループの開始
農地を耕す(2回目以降は収穫)
チェストへ移動
余った骨粉をドロップ
チェストの移動
収穫した作物をドロップ
ドロップできなければ待機
チェストの移動
燃料レベルが500より低くなれば燃料補給
木炭が不足していたら待機
チェストの移動
作物を1スタック入手
チェストの移動
骨粉を3スタック入手
骨粉を3スタック以上入手できなければ待機
農地へ移動
作物を植える
骨粉を散布(3周)
無限ループの終わり
8x8の野菜の自動農業
タートルとチェストの配置、畑でのタートルの動きです。詳しくは小麦の自動農業プログラムの方で確認願います。
ファーミングタートルとチェスト
タートルの前のチェストは木炭、タートルの燃料レベルの下限を設定をしていますので、ここまでの木炭は必要ありません
真ん中のチェストに作物を1スタック、収穫後は、このチェストに作物をドロップしますので1スタックで十分です
骨粉は3周の散布なので最初に不足します、また余った骨粉はこのチェストに戻します
--####野菜の自動農業プログラム、簡易版
--####燃料の補給
turtle.select(1)
turtle.suck()
turtle.refuel()
turtle.up()
--####農地に移動
for A=1,6 do
turtle.forward()
end
--####無限ループの開始
while true do
--####耕すと収穫のループ
for A=1,3 do
turtle.digDown()
for A=1,7 do
turtle.forward()
turtle.digDown()
end
turtle.turnRight()
turtle.forward()
turtle.turnRight()
turtle.digDown()
for A=1,7 do
turtle.forward()
turtle.digDown()
end
turtle.turnLeft()
turtle.forward()
turtle.turnLeft()
end
turtle.digDown()
for A=1,7 do
turtle.forward()
turtle.digDown()
end
turtle.turnRight()
turtle.forward()
turtle.turnRight()
turtle.digDown()
for A=1,7 do
turtle.forward()
turtle.digDown()
end
--####チェストに戻る
turtle.turnRight()
for A=1,7 do
turtle.forward()
end
turtle.turnRight()
turtle.back()
--####骨粉のチェストに余った骨粉をドロップ
for Slot=1,16 do
turtle.select(Slot)
local Dye=turtle.getItemDetail()
if Dye then
if Dye.name=="minecraft:dye" then
turtle.dropDown()
end
end
end
for A=1,2 do
turtle.back()
end
--####作物のチェストに作物をドロップ
for Slot=1,16 do
turtle.select(Slot)
turtle.dropDown()
end
for A=1,2 do
turtle.back()
end
--####燃料補給
if turtle.getFuelLevel()>500 then
turtle.select(1)
turtle.suckDown()
turtle.refuel()
end
for A=1,2 do
turtle.forward()
end
--####スロット1に作物の補給
turtle.select(1)
turtle.suckDown()
for A=1,2 do
turtle.forward()
end
--####スロット2~4に骨粉の補給
for Slot=2,4 do
turtle.select(Slot)
turtle.suckDown()
end
turtle.forward()
--####作物の植え付けと骨粉の散布3回
for Slot=1,4 do
turtle.select(Slot)
for A=1,3 do
turtle.placeDown()
for A=1,7 do
turtle.forward()
turtle.placeDown()
end
turtle.turnRight()
turtle.forward()
turtle.turnRight()
turtle.placeDown()
for A=1,7 do
turtle.forward()
turtle.placeDown()
end
turtle.turnLeft()
turtle.forward()
turtle.turnLeft()
end
turtle.placeDown()
for A=1,7 do
turtle.forward()
turtle.placeDown()
end
turtle.turnRight()
turtle.forward()
turtle.turnRight()
turtle.placeDown()
for A=1,7 do
turtle.forward()
turtle.placeDown()
end
turtle.turnRight()
for A=1,7 do
turtle.forward()
end
turtle.turnRight()
end
end
--####野菜の自動農業プログラム、簡易版の終わり
簡易版は木炭と骨粉の不足、作物チェストが満杯で入らないなどの問題が起きてしまいます。完成版では、os.sleep() でこのような不具合で待機するようにしています。またスリープ時間のコンフィグや print() でタートル画面へのエラー表示、燃料レベルの表示をするようにしています。
--####野菜の自動農業プログラム、完成版
--####コンフィグ
--####アイテム入手とアイテムドロップのエラーでの待機時間
local Sleep=60
--####燃料の補給
turtle.select(1)
turtle.suck()
turtle.refuel()
turtle.up()
--####農地に移動
for A=1,6 do
turtle.forward()
end
--####無限ループの開始
while true do
--####耕すと収穫のループ
for A=1,3 do
turtle.digDown()
for A=1,7 do
turtle.forward()
turtle.digDown()
end
turtle.turnRight()
turtle.forward()
turtle.turnRight()
turtle.digDown()
for A=1,7 do
turtle.forward()
turtle.digDown()
end
turtle.turnLeft()
turtle.forward()
turtle.turnLeft()
end
turtle.digDown()
for A=1,7 do
turtle.forward()
turtle.digDown()
end
turtle.turnRight()
turtle.forward()
turtle.turnRight()
turtle.digDown()
for A=1,7 do
turtle.forward()
turtle.digDown()
end
--####チェストに戻る
turtle.turnRight()
for A=1,7 do
turtle.forward()
end
turtle.turnRight()
turtle.back()
--####骨粉のチェストに余った骨粉をドロップ
for Slot=1,16 do
turtle.select(Slot)
local Dye=turtle.getItemDetail()
if Dye then
if Dye.name=="minecraft:dye" then
turtle.dropDown()
end
end
end
for A=1,2 do
turtle.back()
end
--####作物のチェストに作物をドロップ
for Slot=1,16 do
turtle.select(Slot)
while true do
turtle.dropDown()
if turtle.getItemCount(Slot)==0 then
break
else
print("Chest_Full:OsSleep",Sleep,"ms")
os.sleep(Sleep)
end
end
end
for A=1,2 do
turtle.back()
end
--####燃料補給
local FuelLevel=turtle.getFuelLevel()
print("FuelLevel:",FuelLevel)
if turtle.getFuelLevel()<500 then
turtle.select(1)
while true do
turtle.suckDown()
if turtle.getItemCount(Slot)==64 then
turtle.refuel()
break
else
print("Fuel_Supply:OsSleep",Sleep,"ms")
os.sleep(Sleep)
end
end
end
turtle.select(2)
turtle.dropDown()
for A=1,2 do
turtle.forward()
end
--####スロット1に作物の補給
turtle.select(1)
turtle.suckDown()
for A=1,2 do
turtle.forward()
end
--####スロット2~4に骨粉の補給
for Slot=2,4 do
turtle.select(Slot)
while true do
turtle.suckDown()
if turtle.getItemCount(Slot)==64 then
break
else
print("BoneMeal_Supply:OsSleep",Sleep,"ms")
os.sleep(Sleep)
end
end
end
turtle.forward()
--####作物の植え付けと骨粉の散布3回
for Slot=1,4 do
turtle.select(Slot)
for A=1,3 do
turtle.placeDown()
for A=1,7 do
turtle.forward()
turtle.placeDown()
end
turtle.turnRight()
turtle.forward()
turtle.turnRight()
turtle.placeDown()
for A=1,7 do
turtle.forward()
turtle.placeDown()
end
turtle.turnLeft()
turtle.forward()
turtle.turnLeft()
end
turtle.placeDown()
for A=1,7 do
turtle.forward()
turtle.placeDown()
end
turtle.turnRight()
turtle.forward()
turtle.turnRight()
turtle.placeDown()
for A=1,7 do
turtle.forward()
turtle.placeDown()
end
turtle.turnRight()
for A=1,7 do
turtle.forward()
end
turtle.turnRight()
end
end
--####野菜の自動農業プログラム、完成版の終わり
関連サイト
コンピュータークラフトを極める その3
コンピュータークラフトを極める その3
0 件のコメント:
コメントを投稿