local function hasItemsInStorage(storage) for _, _ in pairs(storage.list()) do return true end return false end local function hasItemsInTurtle() for ii = 1, 16 do if turtle.getItemCount(ii) > 0 then return true end end return false end local function fillTurtle() local success = true turtle.select(1) while success do success = turtle.suck() end end local function emptyTurtle() for ii = 1, 16 do turtle.select(ii) turtle.drop() end end local function hasIdenticalItemsInStorage(storage, slot) local detail = turtle.getItemDetail(slot) if detail == nil then return false end for _, item in pairs(storage.list()) do if item.name == detail.name then return true end end return false end local function storeIdenticalItemsInStorage() local storage = peripheral.wrap("front") for ii = 1, 16 do if hasIdenticalItemsInStorage(storage, ii) then turtle.select(ii) turtle.drop() end end end local function getEmptySlotInStorage(storage) return 5 -- TODO end local function swapSlotsInStorage(storage, slotA, slotB) local emptySlot = getEmptySlotInStorage(storage) storage.pushItems(peripheral.getName(storage), slotA, nil, emptySlot) storage.pushItems(peripheral.getName(storage), slotB, nil, slotA) storage.pushItems(peripheral.getName(storage), emptySlot, nil, slotB) end return { hasItemsInStorage = hasItemsInStorage, hasItemsInTurtle = hasItemsInTurtle, fillTurtle = fillTurtle, emptyTurtle = emptyTurtle, hadIdenticalItemsInStorage = hasIdenticalItemsInStorage, storeIdenticalItemsInStorage = storeIdenticalItemsInStorage, swapSlotsInStorage = swapSlotsInStorage }