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
- CHICKEN_COUNT = 0
- CARROT_COUNT = 0
- BREAD_COUNT = 0
- CABBAGE_COUNT = 0
- CHICKEN_SLOT = -1
- CARROT_SLOT = -1
- BREAD_SLOT = -1
- CABBAGE_SLOT = -1
- function findSlotWithItem(item_name)
- for i=2,16 do
- turtle.select(i)
- local data = turtle.getItemDetail()
- if data ~= nil then
- if data["name"] == item_name then
- return i
- end
- end
- end
- return -1
- end
- 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 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
- CHICKEN_COUNT = 0
- CARROT_COUNT = 0
- BREAD_COUNT = 0
- CABBAGE_COUNT = 0
- CHICKEN_SLOT = -1
- CARROT_SLOT = -1
- BREAD_SLOT = -1
- CABBAGE_SLOT = -1
- -- Collect Bread
- turtle.turnLeft()
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- turtle.forward()
- turtle.turnLeft()
- local bread_collected = turtle.suck()
- if bread_collected then
- BREAD_SLOT = findSlotWithItem("minecraft:bread")
- turtle.select(BREAD_SLOT)
- local bread_item = turtle.getItemDetail()
- BREAD_COUNT = bread_item["count"]
- end
- -- Collect Carrots
- turtle.turnRight()
- for i=1,2 do
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- turtle.forward()
- end
- turtle.turnRight()
- for i=1,6 do
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- turtle.forward()
- end
- turtle.turnLeft()
- local carrots_collected = turtle.suck()
- if carrots_collected then
- CARROT_SLOT = findSlotWithItem("minecraft:carrot")
- turtle.select(CARROT_SLOT)
- local carrot_item = turtle.getItemDetail()
- CARROT_COUNT = carrot_item["count"]
- end
- -- Collect Chicken
- turtle.turnRight()
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- turtle.forward()
- turtle.turnRight()
- for i=1,3 do
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- turtle.forward()
- end
- turtle.turnLeft()
- while true do
- local item_removed = turtle.suck()
- if item_removed then
- CHICKEN_SLOT = findSlotWithItem("minecraft:cooked_chicken")
- if CHICKEN_SLOT == -1 then
- local feather_slot = findSlotWithItem("minecraft:feather")
- turtle.select(feather_slot)
- turtle.dropDown()
- else
- turtle.select(CHICKEN_SLOT)
- local chicken_item = turtle.getItemDetail()
- CHICKEN_COUNT = chicken_item["count"]
- break
- end
- else
- break
- end
- end
- -- Collect Cabbages
- turtle.turnRight()
- for i=1,3 do
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- turtle.forward()
- end
- turtle.turnRight()
- for i=1,2 do
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- turtle.forward()
- end
- turtle.turnLeft()
- local cabbages_collected = turtle.suck()
- if cabbages_collected then
- CABBAGE_SLOT = findSlotWithItem("farmersdelight:cabbage")
- turtle.select(CABBAGE_SLOT)
- local cabbage_item = turtle.getItemDetail()
- CABBAGE_COUNT = cabbage_item["count"]
- end
- -- Move to crafting position
- turnAround()
- for i=1,3 do
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- turtle.forward()
- end
- turtle.turnLeft()
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- turtle.forward()
- -- Remove Coal for Crafting
- turtle.select(1)
- turtle.dropDown()
- -- Craft
- local amount_to_craft = math.min(CHICKEN_COUNT, CARROT_COUNT, BREAD_COUNT, CABBAGE_COUNT)
- turtle.select(BREAD_SLOT)
- turtle.transferTo(1)
- turtle.select(CHICKEN_SLOT)
- turtle.transferTo(2)
- turtle.select(CABBAGE_SLOT)
- turtle.transferTo(5)
- turtle.select(CARROT_SLOT)
- turtle.transferTo(6)
- turtle.select(16)
- turtle.craft(amount_to_craft)
- -- Recollect Coal
- turtle.suckDown(64)
- -- Dump Food in Chest
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- turtle.forward()
- for i=1,16 do
- turtle.select(i)
- local item = turtle.getItemDetail()
- if item ~= nil then
- if arrHasValue(ACCEPTABLE_FUEL, item["name"]) ~= true then
- turtle.dropDown()
- end
- end
- end
- turtle.select(1)
- -- Return
- for i=1,3 do
- if refuel() ~= true then
- print("No Fuel!")
- return
- end
- turtle.forward()
- end
- turnAround()
- end
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement