Advertisement
Sv443

ComputerCraft Wireless Redstone Transmitter

Apr 3rd, 2025
405
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.44 KB | Gaming | 0 0
  1. -- Transmit interval in seconds, must be in an increment of 0.1 (1 redstone tick)
  2. INTERVAL = 0.1
  3.  
  4. -- The side of the signal to transmit
  5. INPUT_SIDE = "left"
  6.  
  7. -- Port to transmit on
  8. TRANSMIT_PORT = 1820
  9.  
  10.  
  11.  
  12. -- Do not edit below or cobuder gets angy >:(
  13.  
  14. local modem = peripheral.find("modem") or error("\n> No modem attached!\n", 0)
  15. modem.open(TRANSMIT_PORT)
  16.  
  17. local lastSig = nil
  18.  
  19. function run()
  20.     local sig = redstone.getAnalogInput(INPUT_SIDE)
  21.  
  22.     modem.transmit(TRANSMIT_PORT, TRANSMIT_PORT, sig)
  23.     if sig ~= lastSig then
  24.         print("* Transmitting signal " .. sig)
  25.         lastSig = sig
  26.     end
  27. end
  28.  
  29. function b64dec(data)
  30.     local b = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
  31.     data = string.gsub(data, "[^"..b.."=]", "")
  32.  
  33.     return (data:gsub(".", function(x)
  34.         if x == "=" then return "" end
  35.         local r, f = "", (b:find(x) - 1)
  36.         for i = 6, 1, -1 do
  37.             r = r .. (f % 2 ^ i - f % 2 ^ (i - 1) > 0 and "1" or "0")
  38.         end
  39.         return r
  40.     end):gsub("%d%d%d?%d?%d?%d?%d?%d?", function(x)
  41.         if #x ~= 8 then return "" end
  42.         local c = 0
  43.         for i = 1, 8 do
  44.             c = c + (x:sub(i, i) == "1" and 2 ^ (8 - i) or 0)
  45.         end
  46.         return string.char(c)
  47.     end))
  48. end
  49.  
  50. -- cause pastebin hates links
  51. print(b64dec("CnwgVHhScyBieSBTdjQ0Mwp8IHN2NDQzLm5ldC9yL2NjLXByb2plY3RzCg=="))
  52.  
  53. while true do
  54.     run()
  55.     sleep(INTERVAL)
  56. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement