Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function Deposit(list)
- for i = 1, 16, 1 do
- turtle.select(i)
- local selectedDetail = turtle.getItemDetail()
- if list == nil then --Deposit all
- turtle.drop() --Deposit
- else
- for l = 1, table.getn(list), 1 do
- --WhiteList
- if selectedDetail and string.find(selectedDetail.name, list[l]) and turtle.inspect() then
- os.setComputerLabel(selectedDetail.name, 'deposited')
- if turtle.drop() == false then --Deposit
- shell.run("/rom/programs/turtle/unequip", "right")
- return
- end
- elseif not turtle.inspect() then
- shell.run("/rom/programs/turtle/unequip", "right")
- return
- end
- --BlackList
- -- if selectedDetail and string.find(selectedDetail.name, list[l]) then --Discard
- -- turtle.dropUp()
- -- elseif selectedDetail and l == table.getn(list) then --Deposit
- -- if turtle.drop() == false and turtle.getItemDetail(i) ~= nil then --Chest full
- -- return false
- -- end
- -- end
- end
- end
- end
- end
- function Plant(itemName)
- for i = 1, 16, 1 do
- turtle.select(i)
- local selectedDetail = turtle.getItemDetail()
- if selectedDetail and string.find(selectedDetail.name, itemName) then
- turtle.place()
- os.setComputerLabel('^-^')
- end
- end
- end
- function PullEvent()
- os.startTimer(60)
- local evt = {os.pullEvent()}
- local inspected = {turtle.inspect()}
- if evt[1] == 'timer' and inspected[2].name ~= nil and string.find(inspected[2].name, 'log') then
- os.setComputerLabel('Tree! :O')
- return true
- elseif evt[1] == 'timer' then
- term.clear()
- term.setCursorPos(1,1)
- os.setComputerLabel('Where tree? ;-;')
- return false
- end
- end
- function Refuel(requiredFuel, fuelType, ratio)
- for i = 1, 16, 1 do
- if turtle.getFuelLevel() >= requiredFuel then --When refueled
- print('Fuel checked')
- return true
- elseif turtle.getItemDetail(i) and string.find(turtle.getItemDetail(i).name, fuelType) then --Continue refill
- turtle.select(i)
- turtle.refuel(math.ceil(((requiredFuel - turtle.getFuelLevel()) / ratio)))
- if turtle.getFuelLevel() >= requiredFuel then --When refueled
- print('Fuel checked')
- return true
- end
- end
- end
- if turtle.getFuelLevel() < requiredFuel then --When failed
- os.setComputerLabel('Give log plz')
- return false
- end
- end
- while true do
- turtle.select(1)
- if PullEvent() and Refuel(30, 'log', 15) then
- turtle.dig()
- turtle.forward()
- local inspected = {turtle.inspectUp()}
- local h = 0
- while inspected[2].name ~= nil and string.find(inspected[2].name, 'log') do
- inspected = {turtle.inspectUp()}
- turtle.digUp()
- turtle.up()
- h = h + 1
- end
- for i = 1, h, 1 do
- turtle.down()
- end
- turtle.turnLeft()
- turtle.turnLeft()
- turtle.forward()
- --TODO: Refuel with wood before deposit
- Deposit({'log'})
- turtle.turnLeft()
- turtle.turnLeft()
- turtle.suckDown(1)
- Plant('sapling')
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement