Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- drone = component.proxy(component.list("drone")())
- modem = component.proxy(component.list("modem")())
- leash = component.proxy(component.list("leash")())
- fluid = component.proxy(component.list("tank_controller")())
- chest = component.proxy(component.list("inventory_controller")())
- drone.setStatusText("Let's\ngrief!")
- modem.open(27)
- add = -50
- function rgb2hex(r,g,b)
- return r*65536+g*256+b
- end
- while true do
- name, _, sender, _, _, message, a, b, c, d, e = computer.pullSignal(0.2)
- if name == "modem_message" then
- if message == 'move' then
- x, y, z = tonumber(a),tonumber(b),tonumber(c)
- if x ~= nil and y ~= nil and z ~= nil then
- drone.move(x, y, z)
- end
- elseif message == 'step' then
- x, y, z = tonumber(a),tonumber(b),tonumber(c)
- res = true
- if y ~= 0 then
- if y > 0 then res = drone.detect(1)
- else res = drone.detect(0) end
- elseif x ~= 0 then
- if x > 0 then res = drone.detect(5)
- else res = drone.detect(4) end
- else
- if z > 0 then res = drone.detect(3)
- else res = drone.detect(2) end
- end
- if not res then
- drone.move(x, y, z)
- end
- modem.broadcast(27, not res)
- elseif message == "suck" then
- side = tonumber(a)
- if side == nil or side > 6 or side < 0 then side = 0 end
- size, err = chest.getInventorySize(side)
- if size ~= nil then
- for i=1, size do
- chest.suckFromSlot(side, i)
- end
- modem.broadcast(27, side..": Done!")
- else
- modem.broadcast(27, side..' '..err)
- end
- elseif message == "drop" then
- side = tonumber(a)
- if side == nil or side > 6 or side < 0 then side = 0 end
- for i=1, drone.inventorySize() do
- drone.select(i)
- drone.drop(side)
- modem.broadcast(27, side..": Done!")
- end
- elseif message == "drain" then
- side = tonumber(a)
- if side == nil or side > 6 or side < 0 then side = 0 end
- drone.drain(side)
- modem.broadcast(27, side..": Done!")
- elseif message == "fill" then
- side = tonumber(a)
- if side == nil or side > 6 or side < 0 then side = 0 end
- drone.fill(side)
- modem.broadcast(27, side..": Done!")
- elseif message == "clist" then
- for a,b in pairs(drone) do
- modem.broadcast(27, a..": ")
- if type(b) == 'table' then
- for c,d in pairs(b) do
- modem.broadcast(27, '> '..c..": "..d)
- end
- else
- modem.broadcast(27, ": "..b)
- end
- end
- elseif message == 'swing' then
- side = tonumber(a)
- if side == nil or side > 6 or side < 0 then side = 0 end
- drone.swing(side)
- modem.broadcast(27, side..": Done!")
- elseif message == 'place' then
- side = tonumber(a)
- if side == nil or side > 6 or side < 0 then side = 0 end
- drone.place(side)
- modem.broadcast(27, side..": Done!")
- end
- end
- -- :P
- drone.setLightColor(rgb2hex(200+add, add/2, 30))
- add = add+10
- if add > 50 then add = -50 end
- end
- modem.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement