Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- haba = 3
- nagasa = 15
- -- ブランチの数を入力
- io.write("branch no kazu?")
- branch = io.read()
- homeKyori = 0
- branchKyori = 0
- -- 横のトンネルを作る, トンネルの距離を引数にする
- function branchWork(kyori)
- for i=1,kyori do
- -- 砂があるかもしれないのでなくなるまで掘る
- while turtle.detect() do
- turtle.dig()
- end
- turtle.forward()
- branchKyori = branchKyori +1
- turtle.digDown()
- if i % 8 == 0 then
- placeTorch()
- end
- end
- end
- -- メインのトンネルを作る, トンネルの長さを引数にする
- function mainWork()
- for i=1, haba+1 do
- -- 砂があるかもしれないのでなくなるまで掘る
- while turtle.detect() do
- turtle.dig()
- end
- turtle.forward()
- homeKyori = homeKyori + 1
- turtle.digDown()
- end
- end
- -- kyoriだけ進む
- function skip(kyori)
- for i=1, kyori do
- repeat
- until turtle.forward() == true
- end
- end
- -- 方向転換
- function spin()
- turtle.turnRight()
- turtle.turnRight()
- end
- -- トーチを設置
- function placeTorch()
- turtle.select(1)
- turtle.placeDown()
- end
- -- インベントリを確認
- function checkInventory()
- if turtle.getItemCount(15) > 0 then
- return true
- end
- end
- -- メイントンネルからスタートの位置へ戻る
- function goHome()
- skip(homeKyori)
- turtle.turnRight()
- turtle.down()
- for slot=2,16 do
- turtle.select(slot)
- turtle.drop()
- end
- turtle.turnRight()
- end
- -- メインのトンネルへ戻る
- function goToMain()
- spin()
- skip(branchKyori)
- end
- -- メインの処理
- turtle.up()
- for i=1,branch do
- --メインのトンネルを1ブランチ分掘る
- mainWork()
- -- ブランチ部分にトーチを置く
- placeTorch()
- -- 右のブランチを掘る
- turtle.turnRight()
- branchKyori = 0
- branchWork(nagasa)
- goToMain()
- -- 左のブランチを掘る
- branchKyori = 0
- branchWork(nagasa)
- goToMain()
- -- スロットに空きがないなら一旦ホームにもどって集めたブロックを捨てる
- if checkInventory() then
- turtle.turnRight()
- goHome()
- turtle.up()
- skip(homeKyori)
- else
- turtle.turnLeft()
- end
- end
- --折り返してホームに帰る
- spin()
- goHome()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement