Advertisement
MoonlightOwl

GriefDrone 2: Bios

Feb 17th, 2015
357
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.09 KB | None | 0 0
  1. drone = component.proxy(component.list("drone")())
  2. modem = component.proxy(component.list("modem")())
  3. leash = component.proxy(component.list("leash")())
  4. fluid = component.proxy(component.list("tank_controller")())
  5. chest = component.proxy(component.list("inventory_controller")())
  6.  
  7. drone.setStatusText("Let's\ngrief!")
  8.  
  9. modem.open(27)
  10.  
  11. add = -50
  12.  
  13. function rgb2hex(r,g,b)
  14.   return r*65536+g*256+b
  15. end
  16.  
  17. while true do
  18.   name, _, sender, _, _, message, a, b, c, d, e = computer.pullSignal(0.2)
  19.   if name == "modem_message" then
  20.     if message == 'move' then
  21.       x, y, z = tonumber(a),tonumber(b),tonumber(c)
  22.       if x ~= nil and y ~= nil and z ~= nil then
  23.         drone.move(x, y, z)
  24.       end
  25.     elseif message == 'step' then
  26.       x, y, z = tonumber(a),tonumber(b),tonumber(c)
  27.       res = true
  28.       if y ~= 0 then
  29.         if y > 0 then res = drone.detect(1)
  30.         else res = drone.detect(0) end
  31.       elseif x ~= 0 then
  32.         if x > 0 then res = drone.detect(5)
  33.         else res = drone.detect(4) end
  34.       else
  35.         if z > 0 then res = drone.detect(3)
  36.         else res = drone.detect(2) end
  37.       end
  38.       if not res then
  39.         drone.move(x, y, z)
  40.       end
  41.       modem.broadcast(27, not res)
  42.     elseif message == "suck" then
  43.       side = tonumber(a)
  44.       if side == nil or side > 6 or side < 0 then side = 0 end
  45.       size, err = chest.getInventorySize(side)
  46.       if size ~= nil then
  47.         for i=1, size do
  48.           chest.suckFromSlot(side, i)
  49.         end
  50.         modem.broadcast(27, side..": Done!")
  51.       else
  52.         modem.broadcast(27, side..' '..err)
  53.       end
  54.     elseif message == "drop" then
  55.       side = tonumber(a)
  56.       if side == nil or side > 6 or side < 0 then side = 0 end
  57.       for i=1, drone.inventorySize() do
  58.         drone.select(i)
  59.         drone.drop(side)
  60.         modem.broadcast(27, side..": Done!")
  61.       end
  62.     elseif message == "drain" then
  63.       side = tonumber(a)
  64.       if side == nil or side > 6 or side < 0 then side = 0 end
  65.       drone.drain(side)
  66.       modem.broadcast(27, side..": Done!")
  67.     elseif message == "fill" then
  68.       side = tonumber(a)
  69.       if side == nil or side > 6 or side < 0 then side = 0 end
  70.       drone.fill(side)
  71.       modem.broadcast(27, side..": Done!")
  72.     elseif message == "clist" then
  73.       for a,b in pairs(drone) do
  74.         modem.broadcast(27, a..": ")
  75.         if type(b) == 'table' then
  76.           for c,d in pairs(b) do
  77.             modem.broadcast(27, '> '..c..": "..d)
  78.           end
  79.         else
  80.           modem.broadcast(27, ": "..b)
  81.         end
  82.       end
  83.     elseif message == 'swing' then
  84.       side = tonumber(a)
  85.       if side == nil or side > 6 or side < 0 then side = 0 end
  86.       drone.swing(side)
  87.       modem.broadcast(27, side..": Done!")
  88.     elseif message == 'place' then
  89.       side = tonumber(a)
  90.       if side == nil or side > 6 or side < 0 then side = 0 end
  91.       drone.place(side)
  92.       modem.broadcast(27, side..": Done!")
  93.     end
  94.   end
  95.   -- :P
  96.   drone.setLightColor(rgb2hex(200+add, add/2, 30))
  97.   add = add+10
  98.   if add > 50 then add = -50 end
  99. end
  100.  
  101. modem.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement