Advertisement
LukasBor

CC_IR_switch_standalone

Feb 14th, 2021 (edited)
435
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.87 KB | None | 0 0
  1. --[[
  2. Script pro ovladani vyhybky Immersive Railroading pomoci ComputerCraftu (instalace jako autorun: pastebin get 9nbgGu4N startup ).
  3. Detector (mode Computer) na zadni strane, vystup redstonu pro vyhybku na leve strane, trigger: Detector (Speed) na leve strane.
  4. Pojmenovani vlaku je nejsnadnejsi pomoci Computeru z CC a detectoru na jeho zadni strane (mode Computer)
  5. a zadanim prikazu (misto Vlak dat vlastni tag): peripheral.wrap("back").setTag("Vlak")
  6. --]]
  7.  
  8. -- Potrebne komponenty
  9. local detector = peripheral.wrap("back")
  10.  
  11. -- Tagy vsech vlaku pro ktere se ma aktivovat vyhybka (pro neuvedene bude vyhybka v klidovem stavu)
  12. local SWITCH = {"Dieselka","Vlak1"}
  13.  
  14. -- Hlavni telo programu
  15. term.clear()
  16. term.setCursorPos(1,1)
  17. print("Seznam vlaku aktivujicich vyhybku:")
  18. for k,tag in pairs(SWITCH) do print(tag) end
  19. print()
  20. -- V nekonecne smycce cekame na zachyceni eventu...
  21. while true do
  22.   print("Cekam na prijezd vlaku...")
  23.   event_name, address, augment_type, stock_uuid = os.pullEvent("redstone")
  24.   local info = detector.info()
  25.  -- Mame vsechna potrebna data a cteme lokomotivu? (pokud ne, konec handle)
  26.   if (info ~= nil) then
  27.  -- Vypis dat do terminalu
  28.     print("  Tag: "..info.tag)
  29.     print("  Loko: "..info.name)
  30.     print("  Smer: "..info.direction)
  31.     print("  Rychlost: "..math.floor(info.speed).." km/h")
  32.   -- Ovladani vyhybky porovnanim tagu lokomotivy v poli SWITCH
  33.     for k,tag in pairs(SWITCH) do
  34.       -- Pokud je v seznamu = prehodime vyhybku, pokud neni = vyhybka v klidu
  35.         if tag == info.tag then
  36.           redstone.setOutput("right",true)
  37.           break
  38.         else
  39.           redstone.setOutput("right",false)
  40.         end
  41.     end
  42.     if redstone.getOutput("right") then
  43.       print(" Vyhybka aktivni.")
  44.     else
  45.       print(" Vyhybka v klidu.")
  46.     end
  47.     print("")
  48.     sleep(1)
  49.     print("Cekam na prijezd vlaku...")
  50.   end
  51. end
  52.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement