Gallent

Untitled

Mar 17th, 2025 (edited)
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.96 KB | None | 0 0
  1. local target = peripheral.find("integrateddynamics:drying_basin")
  2. local suck = turtle.suck
  3. local drop = turtle.drop
  4.  
  5. local materials = {
  6.     --insert valid ingredients here
  7.     ["minecraft:rotten_flesh"]=true
  8. }
  9. local desiredResults = {
  10.     --Insert desired results here
  11.     ["minecraft:leather"] = true
  12. }
  13.  
  14. local initTable = {
  15.     front=function() end,
  16.     left=function() turtle.turnLeft() end,
  17.     right=function() turtle.turnRight() end,
  18.     back=function ()
  19.         turtle.turnLeft()
  20.         turtle.turnLeft()
  21.     end,
  22.     top=function ()
  23.         suck=turtle.suckUp
  24.         drop=turtle.dropUp
  25.     end,
  26.     bottom=function ()
  27.         suck=turtle.suckDown
  28.         drop=turtle.dropDown
  29.     end
  30. }
  31.  
  32. initTable[peripheral.getName(target)]()
  33.  
  34. local matSlots = {}
  35. for i=1,16 do
  36.     if turtle.getItemDetail(i) ~= nil and
  37.     (materials[turtle.getItemDetail(i).name])
  38.     then
  39.         table.insert(matSlots,i)
  40.     end
  41. end
  42.  
  43. local resultCell=0
  44. local function emptyCheck()
  45.     for i=1,16 do
  46.         if turtle.getItemDetail(i) == nil then
  47.             if resultCell == 0 then resultCell=i end
  48.         elseif (desiredResults[turtle.getItemDetail(i).name] and turtle.getItemDetail(i).count < turtle.getItemDetail(i,true).maxCount) then
  49.             resultCell=i
  50.             break
  51.         end
  52.     end
  53.     return resultCell
  54. end
  55.  
  56. local function makeItem(currentSlot)
  57.     turtle.select(currentSlot)
  58.     emptyCheck()
  59.  
  60.     while turtle.getItemDetail(currentSlot).count > 0 do
  61.         if target.getItemDetail(1) ~= nil and not materials[target.getItemDetail(1).name] then
  62.             turtle.select(resultCell)
  63.             suck(1)
  64.             local detail = turtle.getItemDetail(resultCell,true)
  65.             if not desiredResults[detail.name] or detail.count==detail.maxCount then emptyCheck() end
  66.             turtle.select(currentSlot)
  67.         end
  68.        
  69.         if target.getItemDetail(1) == nil then drop(1) end
  70.     end
  71. end
  72.  
  73. for _,v in pairs(matSlots) do
  74.     makeItem(v)
  75. end
Advertisement
Add Comment
Please, Sign In to add comment