Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Configuration des faces
- local face_laser = "top" -- Detection de charge du Laser Amplifier + Emission du pulse pour le tir
- local face_power = "right" -- Coupure d'alimentation
- local face_reset1 = "front" -- Reset du systeme
- local face_reset2 = "bottom" -- Reset du systeme (equivalent a front)
- -- Envoi du signal de reset sur la face droite pendant 1 seconde au debut
- print("Initialising system...")
- redstone.setOutput(face_power, true)
- os.sleep(1)
- redstone.setOutput(face_power, false)
- -- Variable pour marquer si l'alimentation a ete coupee
- local isPowered = false
- -- Message de demarrage
- print("Program starting...")
- print("Waiting for redstone signal on top to charge the Laser Amplifier")
- -- Boucle principale
- while true do
- -- Surveillance du signal de redstone sur la face top
- local signalPower = redstone.getAnalogInput(face_laser) -- Recupere la puissance du signal
- print("Signal strength on top: " .. signalPower)
- if signalPower == 8 then
- -- Si la puissance est a 8, envoie un pulse pour activer le Laser Amplifier
- redstone.setOutput(face_laser, true)
- redstone.setOutput("left", true) -- Emet aussi du signal sur la face gauche
- print("Laser Amplifier activated, firing!")
- os.sleep(1) -- Attendre un peu avant de couper le signal
- redstone.setOutput(face_laser, false)
- redstone.setOutput("left", false) -- Couper le signal de la face gauche
- -- Attendre que signalPower devienne 7 avant de couper l'alimentation
- while true do
- signalPower = redstone.getAnalogInput(face_laser) -- Actualiser le signal
- if signalPower == 7 then
- -- Si le signal est a 7, alors couper l'alimentation
- redstone.setOutput(face_power, true)
- print("Laser Amplifier power cut.")
- isPowered = true -- Marquer que l'alimentation a ete coupe
- break -- Sortir de la boucle while
- end
- os.sleep(0.1) -- Petit délai pour éviter de boucler trop rapidement
- end
- else
- os.sleep(0.1) -- Attendre un peu avant de vérifier à nouveau
- end
- -- Surveillance du signal sur la face reset pour redemarrer le programme
- if redstone.getInput(face_reset1) or redstone.getInput(face_reset2) then
- print("Reset signal received on front or bottom face. Resetting the power...")
- -- Reinitialiser l'alimentation du Laser Amplifier
- if isPowered then
- redstone.setOutput(face_power, false) -- Restaurer l'alimentation
- print("Laser Amplifier power restored.")
- isPowered = false -- Marquer que l'alimentation a ete restauree
- end
- -- Continuer a surveiller le signal sans redemarrer le programme
- os.sleep(0.5) -- Ajouter un petit delai avant de continuer la boucle
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement