Advertisement
denesik

craft

Nov 13th, 2012
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. dofile("denesik_lib.lua")
  2.  
  3. --listSide={"front","top","down",
  4. --          "left","right","back"}
  5.  
  6. craft={"","r","",
  7.        "","d","",
  8.        "","",""}
  9. craftSide="l"
  10. slotItemCount=64
  11.  
  12. function isRecipe()
  13.   for i=1,9 do
  14.     if(craft[i]~="")then
  15.       if(turtle.getItemCount(numCraftToSlot(i))==0)then
  16.         return false
  17.       end
  18.     end
  19.   end
  20.   return true
  21. end
  22.  
  23. function isRotate()
  24.   if(craftSide=="l" or
  25.      craftSide=="r" or
  26.      craftSide=="b")then
  27.     return true
  28.   end
  29.   for i=1,9 do
  30.     if(craft[i]=="l" or
  31.        craft[i]=="r" or
  32.        craft[i]=="b")then
  33.       return true
  34.     end
  35.   end
  36.   return false
  37. end
  38.  
  39. function suck_(side,slot)
  40.   if(side=="f" or
  41.      side=="r" or
  42.      side=="l")then
  43.     while(turtle.getItemCount(slot)==0)do
  44.       suck(slot,slotItemCount)
  45.     end
  46.   end
  47.   if(side=="t")then
  48.     while(turtle.getItemCount(slot)==0)do
  49.       suckUp(slot,slotItemCount)
  50.     end
  51.   end
  52.   if(side=="d")then
  53.     while(turtle.getItemCount(slot)==0)do
  54.       suckDown(slot,slotItemCount)  
  55.     end
  56.   end
  57. end
  58.  
  59. function getItemChest(side)
  60.   local state=false
  61.   for i=1,9 do
  62.     slot = numCraftToSlot(i)
  63.     if(craft[i]==side and turtle.getItemCount(slot)==0)then
  64.       if(state==false)then
  65.         if(side=="l")then
  66.           turtle.turnLeft()
  67.         end
  68.         if(side=="r")then
  69.           turtle.turnRight()
  70.         end
  71.         state=true
  72.       end
  73.       suck_(side,slot)
  74.     end
  75.   end
  76.   if(state==true)then
  77.     if(side=="l")then
  78.       turtle.turnRight()
  79.     end  
  80.     if(side=="r")then
  81.       turtle.turnLeft()
  82.     end
  83.     state=false
  84.   end
  85. end
  86.  
  87. function dropToChest(side)
  88.   if(side=="r" or
  89.      side=="l" or
  90.      side=="f")then
  91.     while(turtle.getItemCount(4)~=0)do
  92.       turtle.drop()
  93.     end
  94.   end
  95.   if(side=="d")then
  96.     while(turtle.getItemCount(4)~=0)do
  97.       turtle.dropDown()
  98.     end
  99.   end
  100.   if(side=="t")then
  101.     while(turtle.getItemCount(4)~=0)do
  102.       turtle.dropUp()
  103.     end
  104.   end  
  105. end
  106.  
  107. function craftDrop(side)
  108.   if(side=="l")then
  109.     turtle.turnLeft()
  110.     while(isRecipe())do
  111.       turtle.craft()
  112.       dropToChest(side)
  113.     end
  114.     turtle.turnRight()    
  115.   end
  116.   if(side=="r")then
  117.     turtle.turnRight()
  118.     while(isRecipe())do
  119.       turtle.craft()
  120.       dropToChest(side)
  121.     end
  122.     turtle.turnLeft()
  123.   end
  124.   if(side=="d" or
  125.      side=="t" or
  126.      side=="f")then
  127.     while(isRecipe())do
  128.       turtle.craft()
  129.       dropToChest(side)
  130.     end
  131.   end
  132. end
  133.  
  134. if(isRotate())then
  135.   rotateToRed("back")
  136. end
  137. while(true)do
  138.   getItemChest("f")
  139.   getItemChest("t")
  140.   getItemChest("d")    
  141.   getItemChest("l")
  142.   getItemChest("r")
  143.   turtle.select(4)
  144.   craftDrop(craftSide)
  145. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement