Biopsy

Biomine 1.0

Apr 27th, 2012
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.13 KB | None | 0 0
  1. mine    = { -200, 200, 25, 0}
  2. drop     = {  -220,  180, 67 , 2}
  3. minesize = 5
  4.  
  5. os.loadAPI("aware/aware")
  6.  
  7. function pausedropoff()
  8.   pause = aware.getposition()
  9.   gomine()
  10.   dropoff()
  11.   gomine()
  12.   aware.goto(pause)
  13. end
  14.  
  15. function dropoff()
  16.   if (drop ~= null) then
  17.     godrop()
  18.   else
  19.     aware.gohome()
  20.   end
  21.   aware.dump()
  22. end
  23.  
  24. function godrop()
  25.   aware.goto(drop)
  26.   aware.pushpos((os.getComputerID()+1500),"D",drop)
  27. end
  28.  
  29. function plunge()
  30.   plungestart = aware.getposition()
  31.   while(aware.digmovedown() == true or (aware.getposition(3) > 7)) do end
  32.   aware.goto(plungestart)
  33.   if aware.isfull() then pausedropoff() end
  34. end
  35.  
  36. function digmove(times)
  37.   for i=1, times do
  38.     while (aware.digmoveforward() == false) do end
  39.   end
  40. end
  41.  
  42. function plungemove(times)
  43.   for i=1, times do
  44.     plunge()
  45.     while (aware.digmoveforward() == false) do end
  46.   end
  47. end
  48.  
  49. function pmine(maxdistance)
  50.   for distance=0, maxdistance do
  51.     if (distance == 0) then
  52.       plunge()
  53.     else
  54.       aware.digmoveforward()
  55.       aware.turnright()
  56.       plungemove(distance)
  57.       aware.turnright()
  58.       for i=1, 3 do
  59.         plungemove(distance*2)
  60.         aware.turnright()
  61.       end
  62.       plungemove(distance)
  63.       aware.turnleft()
  64.     end
  65.   end
  66.   gomine()
  67. end
  68.  
  69. function smine(maxdistance, depth)
  70.     for rdepth=1, depth do
  71.       aware.digmovedown()
  72.       spiralcenter = aware.getposition()
  73.      
  74.       for distance=1, maxdistance do
  75.         digmove(1)
  76.         aware.turnright()
  77.         digmove(distance)
  78.         aware.turnright()
  79.         for i=1, 3 do
  80.           digmove(distance*2)
  81.           aware.turnright()
  82.           if aware.isfull() then pausedropoff() end
  83.         end
  84.         digmove(distance)
  85.         aware.turnleft()
  86.       end
  87.       aware.goto(spiralcenter)
  88.       if aware.isfull() then pausedropoff() end
  89.     end
  90. end
  91.  
  92. function spmine(radius)
  93.   smine(radius, aware.getposition(3) - 6)
  94.   pmine(radius)
  95. end
  96.  
  97. function gomine()
  98.   aware.goto(mine)
  99.   aware.pushpos((os.getComputerID()+1000),"M",mine)
  100. end
  101.  
  102.  
  103. function setmine(coords)
  104.   mine=coords
  105. end
  106.  
  107.  
  108. aware.setshaftmode(true)
  109. gomine()
  110. aware.setshaftmode(false)
  111. pausedropoff()
  112. spmine(minesize,minesize)
  113. dropoff()
  114. aware.gohome()
Advertisement
Add Comment
Please, Sign In to add comment