Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ACCEPTABLE_FUEL = {"minecraft:coal", "minecraft:charcoal", "minecraft:oak_planks"}
- FUEL_COUNT = 0
- CROP = "farmersdelight:cabbages"
- CROP_ITEM = "farmersdelight:cabbage"
- SEED = "farmersdelight:cabbage_seeds"
- HARVEST_AGE = 7
- function arrHasValue(arr, val)
- for index, value in ipairs(arr) do
- if value == val then
- return true
- end
- end
- return false
- end
- function hasFuel()
- return FUEL_COUNT > 0
- end
- function shouldRefuel()
- return turtle.getFuelLevel() <= 0
- end
- function refuel()
- if shouldRefuel() == true then
- if hasFuel() ~= true then
- return false
- end
- turtle.select(1)
- turtle.refuel(1)
- FUEL_COUNT = FUEL_COUNT - 1
- end
- return true
- end
- function turnAround()
- turtle.turnLeft()
- turtle.turnLeft()
- end
- function plant()
- for i=2,16 do
- turtle.select(i)
- local slotData = turtle.getItemDetail()
- if slotData ~= nil then
- if slotData["name"] == SEED then
- turtle.placeDown()
- return
- end
- end
- end
- end
- function handleCrop()
- local found, block = turtle.inspectDown()
- if found == true then
- if block.name == CROP and block.state.age == HARVEST_AGE then
- turtle.digDown()
- plant()
- end
- else
- plant()
- end
- end
- function doStrip()
- for i=1, 8 do
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- turtle.forward()
- handleCrop()
- end
- end
- function turnLeft()
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- turtle.turnLeft()
- turtle.forward()
- turtle.turnLeft()
- handleCrop()
- end
- function turnRight()
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- turtle.turnRight()
- turtle.forward()
- turtle.turnRight()
- handleCrop()
- end
- function main()
- -- Prepare
- turtle.select(1)
- local slotData = turtle.getItemDetail()
- if slotData ~= nil then
- if arrHasValue(ACCEPTABLE_FUEL, slotData["name"]) == true then
- FUEL_COUNT = slotData["count"]
- end
- end
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- -- Move to beginning spot
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- turtle.forward()
- turtle.turnLeft()
- for i=1,4 do
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- turtle.forward()
- end
- turtle.turnRight()
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- -- Harvest Farm
- handleCrop()
- for i=1,4 do
- doStrip()
- turnRight()
- doStrip()
- turnLeft()
- end
- doStrip()
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- -- Move to Chests
- turnAround()
- for i=1,9 do
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- turtle.forward()
- end
- turtle.turnRight()
- for i=1,3 do
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- turtle.forward()
- end
- -- Dump Cabbages
- for i=2,16 do
- turtle.select(i)
- local slotData = turtle.getItemDetail()
- if slotData ~= nil then
- if slotData["name"] == CROP_ITEM then
- turtle.dropDown(slotData["count"])
- end
- end
- end
- for i=1,2 do
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- turtle.forward()
- end
- -- Dump Seeds
- for i=2,16 do
- turtle.select(i)
- local slotData = turtle.getItemDetail()
- if slotData ~= nil then
- if slotData["name"] == SEED then
- turtle.dropDown(slotData["count"])
- end
- end
- end
- -- Return
- turnAround()
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- turtle.forward()
- turtle.turnLeft()
- end
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement