Advertisement
shirkit

build

May 15th, 2013
334
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.66 KB | None | 0 0
  1. os.loadAPI("utils")
  2. os.loadAPI("matrix")
  3. os.loadAPI("aware")
  4.  
  5. local tArgs = { ... }
  6. structname = tArgs[1]
  7. startpos = {}
  8.  
  9. local function refuel(slot)
  10.   local didTransfer = false
  11.   for i=1,16,1 do
  12.     if  i ~= slot and turtle.compareTo(i)then
  13.       turtle.select(i)
  14.       didTransfer = didTransfer or turtle.transferTo(slot)
  15.       turtle.select(slot)
  16.     end
  17.   end
  18.   return didTransfer
  19. end
  20.  
  21. local function placedown(slot)
  22.   while (turtle.getItemCount(slot) < 2) do
  23.     if (refuel(slot) == false) then
  24.       utils.termwrite("Slot "..slot.." needs a refill!")
  25.       sleep(3)
  26.     end
  27.   end
  28.   turtle.select(slot)
  29.   while(turtle.placeDown() == false) do
  30.     if(turtle.digDown() == false) then
  31.       utils.termwrite("Unable to place block beneath me!")
  32.       sleep(3)
  33.     end
  34.   end
  35. end
  36.  
  37. local function buildlayer(number)
  38.   currentlayer = utils.varfromfile(structname.."/"..structname..number)
  39.  
  40.   for i=1, 100, 2 do
  41.     for j=1, 40 do
  42.       block = matrix.get(currentlayer, i, j)
  43.       if(block ~= nil) then
  44.         aware.moveto((startpos[1]+i), (startpos[2]+j))
  45.         placedown(block)
  46.       end
  47.     end
  48.     for j=40, 1, -1 do
  49.       block = matrix.get(currentlayer, i+1, j)
  50.       if(block ~= nil) then
  51.         aware.moveto((startpos[1]+i+1), (startpos[2]+j))
  52.         placedown(block)
  53.       end
  54.     end
  55.   end
  56. end
  57.  
  58. local function build()
  59.   startpos = aware.getposition("current")
  60.   structpos = 0
  61.   while(fs.exists(structname.."/"..structname..structpos)) do
  62.     buildlayer(structpos)
  63.     aware.digmoveup()
  64.     structpos = structpos + 1
  65.   end
  66.   aware.moveto(startpos[1],startpos[2],startpos[3]+structpos)
  67.   aware.goto(startpos)
  68. end
  69.  
  70. build()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement