Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function selectItem(name)
- for i=1,16 do
- local data = turtle.getItemDetail(i)
- if data and data.name == ("minecraft:"..name) then
- turtle.select(i)
- return
- end
- end
- end
- function transferItemsToSlot(name, slot)
- for i=1,16 do
- local data = turtle.getItemDetail(i)
- if data and data.name == ("minecraft:"..name) then
- turtle.select(i)
- turtle.transferTo(slot)
- end
- end
- end
- function farm(count, farmingItem, skipFirstForward)
- for i=1,count do
- if not(skipFirstForward==true and i == 1) then
- turtle.forward()
- end
- -- Wenn kein Sapling bereits platziert ist, diesen platzieren
- local success, data = turtle.inspectDown()
- if not success then
- placeDownItem(farmingItem)
- elseif data.metadata == 7 then
- turtle.digDown()
- placeDownItem(farmingItem)
- end
- end
- end
- function placeDownItem(farmingItem)
- local data = turtle.getItemDetail()
- if not data or data.name ~= ("minecraft:"..farmingItem) then
- selectItem(farmingItem)
- end
- data = turtle.getItemDetail()
- if not data or data.name ~= ("minecraft:"..farmingItem) then
- return
- end
- turtle.placeDown()
- end
- function forwardX(x)
- for i=1,x do
- turtle.forward()
- end
- end
- function farmMultipleRows(rowLength, rowCount, farmingItem, skipFirstForward, lastRun)
- for i=1,rowCount do
- farm(rowLength, farmingItem, skipFirstForward)
- local left = i % 2 == 0
- if lastRun and i == rowCount then
- left = not left
- end
- if left then
- turtle.turnLeft()
- else
- turtle.turnRight()
- end
- turtle.forward()
- if i < rowCount then
- if left then
- turtle.turnLeft()
- else
- turtle.turnRight()
- end
- end
- skipFirstForward = true
- end
- end
- function farmTree(destroyOtherBlock)
- -- Nach vorne
- local success, data = turtle.inspect()
- if success and (data.name == "minecraft:log" or data.name == "minecraft:leaves") then
- turtle.dig()
- turtle.forward()
- farmTree(false)
- turtle.back()
- local itemdetail = turtle.getItemDetail()
- if itemdetail and itemdetail.name == "minecraft:sapling" then
- turtle.place()
- end
- elseif destroyOtherBlock and not (success and data.name == "minecraft:sapling") then
- if success then
- turtle.dig()
- end
- local itemdetail = turtle.getItemDetail()
- if itemdetail and itemdetail.name == "minecraft:sapling" then
- turtle.place()
- end
- end
- -- Nach oben
- local success, data = turtle.inspectUp()
- if success and (data.name == "minecraft:log" or data.name == "minecraft:leaves") then
- turtle.digUp()
- turtle.up()
- farmTree(false)
- turtle.down()
- end
- -- Nach links
- turtle.turnLeft()
- local success, data = turtle.inspect()
- if success and (data.name == "minecraft:log" or data.name == "minecraft:leaves") then
- turtle.dig()
- turtle.forward()
- farmTree(false)
- turtle.back()
- end
- -- Nach hinten
- turtle.turnLeft()
- local success, data = turtle.inspect()
- if success and (data.name == "minecraft:log" or data.name == "minecraft:leaves") then
- turtle.dig()
- turtle.forward()
- farmTree(false)
- turtle.back()
- end
- -- Nach rechts
- turtle.turnLeft()
- local success, data = turtle.inspect()
- if success and (data.name == "minecraft:log" or data.name == "minecraft:leaves") then
- turtle.dig()
- turtle.forward()
- farmTree(false)
- turtle.back()
- end
- -- grade stehen
- turtle.turnLeft()
- -- Nach unten
- local success, data = turtle.inspectDown()
- if success and (data.name == "minecraft:log" or data.name == "minecraft:leaves") then
- turtle.digDown()
- turtle.down()
- farmTree(false)
- turtle.up()
- end
- end
- function farmRow()
- turtle.turnLeft()
- farmTree(true)
- turtle.turnRight()
- turtle.turnRight()
- farmTree(true)
- turtle.turnLeft()
- end
- local rows = 12
- while true do
- selectItem("sapling")
- forwardX(rows)
- farmRow()
- for i=1,rows do
- turtle.back()
- farmRow()
- end
- sleep(120)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement