Advertisement
drpepper240

LaserTest

Dec 2nd, 2023 (edited)
993
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.28 KB | None | 0 0
  1. local sides = peripheral.getNames()
  2. print("Found " .. tostring(table.getn(sides)) .. " peripherals")
  3. local mainLaser = nil
  4. local lasers = {}
  5. for _, side in pairs(sides) do
  6.     if peripheral.getType(side) == "warpdriveLaser" then
  7.         local laser = peripheral.wrap(side)
  8.         local lx, ly, lz = laser.getLocalPosition()
  9.         if (lx == 324) then
  10.             mainLaser = peripheral.wrap(side)
  11.             mainLaser["lx"], mainLaser["ly"], mainLaser["lz"] = mainLaser.getLocalPosition()
  12.             mainLaser.beamFrequency(30000)
  13.         elseif (lx == 333 or lx == 333) then
  14.             local newIndex = #lasers+1
  15.             lasers[newIndex] = peripheral.wrap(side)
  16.             lasers[newIndex]["lx"], lasers[newIndex]["ly"], lasers[newIndex]["lz"] = lasers[newIndex].getLocalPosition()
  17.             lasers[newIndex].beamFrequency(30000)
  18.             if (lasers[newIndex].getEnergyStatus() < 1000000) then
  19.                 print("Laser at " .. lasers[newIndex].lx .. "; " .. lasers[newIndex].ly .. "; " .. lasers[newIndex].lz.. "; has insufficient energy, aborting...")
  20.                 return
  21.             end
  22.         end
  23.     end
  24. end
  25. if (mainLaser == nil) then
  26.     print("Laser not found")
  27. end
  28.  
  29. print("Preparing to fire...")
  30.  
  31. while true do
  32.     if (mainLaser.getEnergyStatus() < 1000000) then
  33.         sleep(0.2)
  34.     else
  35.         print("Firing: " .. os.clock())
  36.         print(mainLaser.emitBeam(0, 0, -50))
  37.         sleep(2)
  38.     end
  39. end
  40.  
  41.  
  42. -- print("Firing in 2 seconds")
  43. -- sleep(2)
  44. -- while true do
  45.     -- local skip = nil
  46.     -- repeat
  47.         -- skip = false
  48.         -- for _,l in ipairs(lasers) do
  49.             -- if (l.getEnergyStatus() < 1000000) then
  50.                 -- skip = true
  51.                 -- break
  52.             -- end
  53.         -- end
  54.         -- if (skip) then
  55.             -- sleep(0.5)
  56.         -- end
  57.     -- until (skip == false)
  58.    
  59.     -- for _,l in ipairs(lasers) do
  60.         -- l.emitBeam(mainLaser.lx - l.lx, mainLaser.ly - l.ly, mainLaser.lz - l.lz)
  61.     -- end
  62.     -- sleep(0.1) -- min 0.05 max 0.25
  63.  
  64.     -- mainLaser.emitBeam(0, 0, -50)
  65.     -- sleep(2.5)
  66. -- end
  67.  
  68.  
  69. -- salvoCnt = 0
  70. -- while true do
  71.     -- for _,l in ipairs(lasers) do
  72.         -- --l.emitBeam(mainLaser.lx - l.lx, mainLaser.ly - l.ly, mainLaser.lz - l.lz)
  73.        
  74.         -- if (salvoCnt > 3) then
  75.             -- salvoCnt = 0
  76.             -- sleep(5)
  77.         -- end
  78.         -- if (l.getEnergyStatus() == 1000000) then
  79.             -- l.emitBeam(000 - l.lx, 29 - l.ly, -000 - l.lz)
  80.             -- salvoCnt = salvoCnt + 1
  81.         -- end
  82.     -- end
  83. -- end
  84. --sleep(0.1) -- min 0.05 max 0.25
  85.  
  86. --mainLaser.emitBeam(0, 0, -50)
  87.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement