Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- os.loadAPI("utils")
- inputs = {}
- default = "sortForward"
- function loadFilter(filterFile)
- local result = {}
- local file = fs.open(filterFile, "r")
- if file == nil then
- return result
- end
- local item = file.readLine()
- while item ~= nil do
- if item == "DEFAULT" then
- default = filterFile
- elseif item == "INPUT" then
- table.insert(inputs, filterFile)
- -- inputs cannot be outputs
- -- so ignore any filters
- return {}
- else
- table.insert(result, item)
- end
- item = file.readLine()
- end
- file.close()
- print("Loaded "..#result.." items from "..filterFile)
- return result
- end
- function dropDefault()
- if default == "sortUp" then
- turtle.dropUp()
- elseif default == "sortDown" then
- turtle.dropDown()
- else
- turtle.drop()
- end
- end
- function sortItems()
- for i = 1,16 do
- local item = turtle.getItemDetail(i)
- if item ~= nil then
- turtle.select(i)
- if utils.itemMatchesAny(item, up) then
- turtle.dropUp()
- elseif utils.itemMatchesAny(item, down) then
- turtle.dropDown()
- elseif utils.itemMatchesAny(item, forward) then
- turtle.drop()
- else
- dropDefault()
- end
- end
- end
- end
- function suckItems()
- if utils.tableContains(inputs, "sortUp") then
- turtle.suckUp()
- end
- if utils.tableContains(inputs, "sortDown") then
- turtle.suckDown()
- end
- if utils.tableContains(inputs, "sortForward") then
- turtle.suck()
- end
- end
- up = loadFilter("sortUp")
- down = loadFilter("sortDown")
- forward = loadFilter("sortForward")
- while true do
- suckItems()
- sortItems()
- -- schedule an event in 5 seconds
- -- to check for items
- os.startTimer(5)
- -- wait for any event, including
- -- timer or turtle_inventory
- os.pullEvent()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement