Advertisement
BigBlow_

FusionLaserController

Mar 13th, 2025 (edited)
26
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. -- Configuration des faces
  2. local face_laser = "top" -- Detection de charge du Laser Amplifier + Emission du pulse pour le tir
  3. local face_power = "right" -- Coupure d'alimentation
  4. local face_reset1 = "front" -- Reset du systeme
  5. local face_reset2 = "bottom" -- Reset du systeme (equivalent a front)
  6.  
  7. -- Envoi du signal de reset sur la face droite pendant 1 seconde au debut
  8. print("Initialising system...")
  9. redstone.setOutput(face_power, true)
  10. os.sleep(1)
  11. redstone.setOutput(face_power, false)
  12.  
  13. -- Variable pour marquer si l'alimentation a ete coupee
  14. local isPowered = false
  15.  
  16. -- Message de demarrage
  17. print("Program starting...")
  18. print("Waiting for redstone signal on top to charge the Laser Amplifier")
  19.  
  20. -- Boucle principale
  21. while true do
  22. -- Surveillance du signal de redstone sur la face top
  23. local signalPower = redstone.getAnalogInput(face_laser) -- Recupere la puissance du signal
  24. print("Signal strength on top: " .. signalPower)
  25.  
  26. if signalPower == 8 then
  27. -- Si la puissance est a 8, envoie un pulse pour activer le Laser Amplifier
  28. redstone.setOutput(face_laser, true)
  29. redstone.setOutput("left", true) -- Emet aussi du signal sur la face gauche
  30. print("Laser Amplifier activated, firing!")
  31. os.sleep(1) -- Attendre un peu avant de couper le signal
  32. redstone.setOutput(face_laser, false)
  33. redstone.setOutput("left", false) -- Couper le signal de la face gauche
  34.  
  35. -- Attendre que signalPower devienne 7 avant de couper l'alimentation
  36. while true do
  37. signalPower = redstone.getAnalogInput(face_laser) -- Actualiser le signal
  38. if signalPower == 7 then
  39. -- Si le signal est a 7, alors couper l'alimentation
  40. redstone.setOutput(face_power, true)
  41. print("Laser Amplifier power cut.")
  42. isPowered = true -- Marquer que l'alimentation a ete coupe
  43. break -- Sortir de la boucle while
  44. end
  45. os.sleep(0.1) -- Petit délai pour éviter de boucler trop rapidement
  46. end
  47.  
  48. else
  49. os.sleep(0.1) -- Attendre un peu avant de vérifier à nouveau
  50. end
  51.  
  52. -- Surveillance du signal sur la face reset pour redemarrer le programme
  53. if redstone.getInput(face_reset1) or redstone.getInput(face_reset2) then
  54. print("Reset signal received on front or bottom face. Resetting the power...")
  55.  
  56. -- Reinitialiser l'alimentation du Laser Amplifier
  57. if isPowered then
  58. redstone.setOutput(face_power, false) -- Restaurer l'alimentation
  59. print("Laser Amplifier power restored.")
  60. isPowered = false -- Marquer que l'alimentation a ete restauree
  61. end
  62.  
  63. -- Continuer a surveiller le signal sans redemarrer le programme
  64. os.sleep(0.5) -- Ajouter un petit delai avant de continuer la boucle
  65. end
  66. end
  67.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement