--###アイテムがなくなるとスロットを変更する関数
function PLACESLOT()--関数の定義
if turtle.placeDown() then--もしブロックが置けたら処理続行
else--もしブロックが置けなかったら
local SLOT=turtle.getSelectedSlot()--選択スロットをSLOTで定義
for A=SLOT,16 do--スロット変更のループ
turtle.select(A)--スロットはループAを選択
if turtle.getItemCount()>0 then--アイテム個数が0より大きければ
turtle.placeDown()--ブロックを設置
break--ループAを終える
end--もしアイテム個数が...の終わり
end--スロット変更ループの終わり
end--もしブロックが置けたらの終わり
end--関数定義の終わり
いろいろと役に立つと思います
16x8x3段のラージチェスト設置のプログラム、最後は元に戻ってきます
可変式の反復するプログラムでは、スタート位置に戻ってくることが必須となります
local COUNT=0--横のチェストに数をカウントする変数の定義
local COMEBACK=0--横に移動した数をカウントする変数の定義
スロット1には木炭などの燃料を入れておきます
※燃料を考えるとプログラムが難しくなりますので、初心者は最初にタートルの燃料を大量に入れておくか、コンフィグで燃料不要にすることをお勧めします
縦方向に移動しながら設置して、戻りながら設置ののプログラムです
縦横、段数を指定できます、最大チェスト1024個まで設置可能です
local LENGTH=16--縦方向のチェストの数の定義
local WIDTH=8--横方向のチェストの数の定義
local STEP=3--チェストの段数の定義
--####可変式チェスト大量設置のプログラム
local LENGTH=16
local WIDTH=8
local STEP=3
function PLACESLOT()
if turtle.placeDown() then
else
local SLOT=turtle.getSelectedSlot()
for A=SLOT,16 do
turtle.select(A)
if turtle.getItemCount()>0 then
turtle.placeDown()
break
end
end
end
end
turtle.select(1)
turtle.refuel()
for A=1,STEP do
local COUNT=0
local COMEBACK=0
turtle.up()
for A=1,WIDTH do
COUNT=COUNT+1
for A=1,LENGTH-1 do
PLACESLOT()
turtle.forward()
turtle.forward()
PLACESLOT()
end
turtle.turnRight()
turtle.forward()
COMEBACK=COMEBACK+1
turtle.turnRight()
for A=1,LENGTH-1 do
PLACESLOT()
turtle.forward()
turtle.forward()
PLACESLOT()
end
if WIDTH==COUNT then
turtle.turnRight()
for A=1,COMEBACK do
turtle.forward()
end
break
else
turtle.turnLeft()
turtle.forward()
turtle.forward()
turtle.turnLeft()
COMEBACK=COMEBACK+2
end
end
turtle.turnRight()
end
--####可変式チェスト大量設置のプログラムの終わり
このプログラムを考えたのは、大量のタートルに自動植林のプログラムで走らせたのですが、チェストは壊す、1段上で止まる、下まで掘りぬく、前後がズレるなどと問題だらけでした。そのたびにチェストに植林素材を入れたりと面倒なことを繰り返していました。ならば、その面倒なことは、タートルが自動でするのが目的です。
関連サイト
コンピュータークラフトを極める その2
関連サイト
コンピュータークラフトを極める その2
0 件のコメント:
コメントを投稿