Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function getmodems(mode)
- mode = mode or "default"
- if mode == "default" then
- allp = peripheral.getNames()
- d = {}
- x = 0
- for i,value in ipairs(allp) do
- c = peripheral.getType(value)
- if c == "modem" then
- c = peripheral.wrap(value)
- x = x + 1
- d[x] = c
- end
- end
- d["a"] = x
- d["amount"] = x
- return d
- elseif mode == "sides" or mode =="s" then
- allp = peripheral.getNames()
- d = {}
- x = 0
- for i,value in ipairs(allp) do
- c = peripheral.getType(value)
- if c == "modem" then
- x = x + 1
- d[x] = value
- end
- end
- d["a"] = x
- d["amount"] = x
- return d
- end
- end
- function getmsg()
- while true do
- d = {}
- event, side, frequency, replyFrequency, message, distance = os.pullEvent("modem_message")
- d["e"] = event
- d["s"] = side
- d["f"] = frequency
- d["rf"] = replyFrequency
- d["m"] = message
- d["d"] = distance
- return d
- end
- end
- function transmitall(p,rp,message)
- modems = getmodems()
- print(modems["a"])
- if modems["a"] == 0 then else
- for modem = 1,modems["a"] do
- cm = modems[modem]
- cm.transmit(p,rp,message)
- end
- end
- end
- function relay(p,rp,message,exclude)
- sides = getmodems("s")
- if modems["a"] == 0 then else
- for side = 1,modems["a"] do
- cs = sides[side]
- if cs == exclude then else
- cm.transmit(p,rp,message)
- end
- end
- end
- end
- function createbutton(x,y,w,h,color,message)
- d = {}
- function d:init(x,y,w,h,color,message)
- self.x1 = x
- self.x2 = x+w
- self.y1 = y
- self.y2 = y+h
- self.color = color
- self.message = message
- end
- function d:isclickon (x,y)
- if self.x1 <= x and x <= self.x2 and self.y1 <= y and y <= self.y2 then
- return true
- else
- return false
- end
- end
- function d:draw ()
- --print(self.x1)
- paintutils.drawBox(self.x1,self.y1,self.x2,self.y2,self.color)
- print(self.message)
- end
- d:init(x,y,w,h,color,message)
- return d
- end
- term.clear()
- m = getmodems()[1]
- but1 = createbutton(2,2,9,3,colors.red,"close")
- but1:draw()
- but2 = createbutton(2,7,9,3,colors.green,"open")
- but2:draw()
- while true do
- local event, button, mx, my = os.pullEvent( "mouse_click" )
- term.setTextColor(colors.white)
- if but1:isclickon(mx,my) then m.transmit(313,313,"ca1") end
- if but2:isclickon(mx,my) then m.transmit(313,313,"oa1") end
- --print(but1:isclickon(mx,my))
- --print(but2:isclickon(mx,my))
- end
Add Comment
Please, Sign In to add comment