1.16.5日本語化リソースパック配布

302個のMODの翻訳が完了したので YouTube にて配布いたします 。翻訳の内容など不備はありますが、無いよりはましだと思って使ってください。翻訳したMODの詳細については、まとめるのが面倒くさいので止めておきます。このリソースパックを導入することがマイクラMOD攻略の近道...

2019年8月10日土曜日

プログラム1

自動植林のコアとなるタートルのプログラムです。大量にチェストとタートルを設置、アイテムの均等分配、原木だけを回収すると重要な役割となります。タートルの位置ずれは絶対に起こさない、アイテムを均等に分配する、原木は極力残さないをプログラムです。自動植林タートルのインベントリとチェストの圧迫は命取りとなります。


絶対に失敗しないタートルです


タートルのスロットのアイテムの配置
必須項目となります、アイテム数が多いと後で回収する必要があります




プログラムをスタート

燃料を補給してチェストとタートルを配置
この位置でタートルは待機します


無限ループを開始

前に行くときは無限ループを使い位置ずれを防止

--####絶対前に行く関数
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
1.のプログラムはここまで

次のプログラムです
複数タートルでの自動植林 プログラム2

関連サイト
コンピュータークラフトを極める その2

0 件のコメント:

コメントを投稿

関連コンテンツ