Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- doorName = "ThaumcraftDoor"
- updateTime = 5
- rSide = "back"
- rednet.open("top")
- local Args = {...}
- if Args[1] == "update" then
- programName = shell.getRunningProgram()
- print("Updating.")
- fs.delete( programName )
- shell.run( "pastebin","get", "qMH0ZHZC", programName )
- print("Finished updating.")
- error()
- end
- print("Hosting as "..doorName)
- if active == nil then active = true end
- print("Active: "..tostring(active))
- pos = vector.new(gps.locate(5))
- if pos == nil then print("Could not find position") else print("Position is "..tostring(pos)) end
- timer = os.startTimer( updateTime )
- function update()
- rs.setOutput( rSide, active )
- end
- update()
- while true do
- event,pr1,pr2 = os.pullEvent()
- if event == "timer" and pr1 == timer then
- data = {}
- data["getActive"] = active
- data["getPosition"] = pos
- txtData = textutils.serialize( { [1] = "door", [2] = doorName, [3] = textutils.serialize( data ) } )
- rednet.broadcast( txtData )
- timer = os.startTimer( updateTime - 0.05 )
- update()
- elseif event == "rednet_message" then
- if textutils.unserialize(pr2)[1] == doorName then
- data = textutils.unserialize(pr2)
- if data[2] == "setActive" then
- active = data[3]
- if active then
- print("Active: true")
- else
- print("Active: false")
- end
- update()
- elseif data[2] == "toggle" then
- active = not active
- if active then
- print("Active: true")
- else
- print("Active: false")
- end
- update()
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment