Advertisement
LukasBor

OC_IR_switch

Oct 24th, 2018 (edited)
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.13 KB | None | 0 0
  1. --[[
  2. Script pro ovladani vyhybky Immersive Railroading pomoci OpenComputers.
  3. Neresim adresy zarizeni - uvazuji jeden detector a jednu redstone cartu.
  4. Pro ovladani vyhybku je pouzit Wireless receiver (WR-CBE) a v PC osazena Redstone Card Tier 2 (umi wireless).
  5. Pojmenovani vlaku je nejsnadnejsi pomoci Computeru z CC a detectoru na jeho zadni strane (mode Computer)
  6. a zadanim prikazu (misto Vlak dat vlastni tag): peripheral.wrap("back").setTag("Vlak")
  7. --]]
  8.  
  9. -- Potrebne komponenty
  10. local component = require("component")
  11. local event = require("event")
  12. local computer = require("computer")
  13. local term = require("term")
  14. local detector = component.ir_augment_detector
  15. local redstone = component.redstone
  16.  
  17. -- Tagy vsech vlaku pro ktere se ma aktivovat vyhybka (pro neuvedene bude v klidovem stavu)
  18. local SWITCH = {"Testing","Vlak1"}
  19. -- Kanal na kterem posloucha redstone Wireless receiver pro danou vyhybku (z WirelessRedstone-CBE),
  20. -- !! Adresa MUSI BYT UNIKATNI !! (jinak se bude prehazovat jina vyhybka nebo ovladat uplne jine zarizeni)
  21. redstone.setWirelessFrequency(101)
  22.  
  23. -- Hlavni telo programu
  24. term.clear()
  25. term.setCursor(1,1)
  26. print("Cekam na prijezd vlaku...")
  27. -- V nekonecne smycce cekame na zachyceni eventu...
  28. while true do
  29.   event_name, address, augment_type, stock_uuid = event.pull("ir_train_overhead")
  30.   local info = detector.info()
  31.  -- Mame vsechna potrebna data a cteme lokomotivu? (pokud ne, konec handle)
  32.   if (info ~= nil) then
  33.  -- Vypis dat do terminalu
  34.     if (augment_type == "DETECTOR") then
  35.       print("  Tag: "..info.tag)
  36.       print("  Loko: "..info.name)
  37.       print("  Smer: "..info.direction)
  38.       print("  Rychlost: "..math.floor(info.speed).." km/h")
  39.     end
  40.   -- Ovladani vyhybky porovnanim tagu lokomotivy v poli SWITCH
  41.     for k,tag in pairs(SWITCH) do
  42.       -- Pokud je v seznamu = prehodime vyhybku, pokud neni = vyhybka v klidu
  43.         if tag == info.tag then
  44.           redstone.setWirelessOutput(true)
  45.           print(" Vyhybka aktivni.")
  46.           break
  47.         else
  48.           redstone.setWirelessOutput(false)
  49.         end
  50.     end
  51.     print("")
  52.     print("Cekam na prijezd vlaku...")
  53.   end
  54. end
  55.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement