mirror of
				https://github.com/LDDestroier/CC/
				synced 2025-10-31 07:22:59 +00:00 
			
		
		
		
	Create wireless-rs.lua
This commit is contained in:
		
							
								
								
									
										65
									
								
								wireless-rs.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								wireless-rs.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,65 @@ | ||||
| -- wireless redstone solution | ||||
|  | ||||
| print("Enter a key:") | ||||
| local key = read() | ||||
| local channel = 1005 | ||||
|  | ||||
| local occupiedSides = {} | ||||
| local inputSides = {} | ||||
|  | ||||
| local oppositeSides = { | ||||
| 	top = "bottom", | ||||
| 	bottom = "top", | ||||
| 	right = "left", | ||||
| 	left = "right", | ||||
| 	front = "back", | ||||
| 	back = "front" | ||||
| } | ||||
|  | ||||
| local modem = peripheral.find("modem") | ||||
| modem.open(channel) | ||||
|  | ||||
| local evt | ||||
|  | ||||
| while true do | ||||
| 	evt = {os.pullEvent()} | ||||
| 	if evt[1] == "redstone" then | ||||
| 		for side, oSide in pairs(oppositeSides) do | ||||
| 			if redstone.getInput(side) and not occupiedSides[side] then | ||||
| 				inputSides[side] = true | ||||
| 				occupiedSides[side] = true | ||||
| 				occupiedSides[oSide] = true | ||||
| 				modem.transmit(channel, channel, { | ||||
| 					cmd = "turnOn", | ||||
| 					key = key, | ||||
| 					side = side, | ||||
| 				}) | ||||
| 			elseif redstone.getOutput(side) == false and inputSides[side] then | ||||
| 				inputSides[side] = false | ||||
| 				occupiedSides[side] = false | ||||
| 				occupiedSides[oSide] = false | ||||
| 				modem.transmit(channel, channel, { | ||||
| 					cmd = "turnOff", | ||||
| 					key = key, | ||||
| 					side = side | ||||
| 				}) | ||||
| 			end | ||||
| 		end | ||||
| 	elseif evt[1] == "modem_message" then | ||||
| 		local msg = evt[5] | ||||
| 		if type(msg) == "table" then | ||||
| 			if msg.key == key and msg.cmd and oppositeSides[msg.side or false] then | ||||
|  | ||||
| 				if msg.cmd == "turnOn" then | ||||
| 					inputSides[msg.side] = true | ||||
| 					occupiedSides[msg.side] = true | ||||
| 					occupiedSides[oppositeSides[msg.side]] = true | ||||
| 				elseif msg.cmd == "turnOff" then | ||||
| 					inputSides[msg.side] = false | ||||
| 					occupiedSides[msg.side] = false | ||||
| 					occupiedSides[oppositeSides[msg.side]] = false | ||||
| 				end | ||||
| 			end | ||||
| 		end | ||||
| 	end | ||||
| end | ||||
		Reference in New Issue
	
	Block a user
	 LDDestroier
					LDDestroier