Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Configuration
- local chargePower = 7 -- Signal strength required to cut power
- local shootPower = 8 -- Signal strength required to fire the laser
- local faceLaser = "top" -- Face used to detect laser amplifier charge and to send fire pulse
- local facePower = "right" -- Face used to cut/restore power
- local faceReset1 = "front" -- Reset signal face 1
- local faceReset2 = "bottom" -- Reset signal face 2
- local faceAlarm = "left" -- Face to emit redstone when laser is firing
- -- Initialization
- print("Initialising system...")
- redstone.setOutput(facePower, true)
- os.sleep(1)
- redstone.setOutput(facePower, false)
- -- Variable to track if power has been cut
- local isPowered = false
- -- Startup message
- print("Program starting...")
- print("Waiting for redstone signal on " .. faceLaser .. " to charge the Laser Amplifier")
- -- Main loop
- while true do
- -- Get redstone analog input from laser amplifier face
- local signalPower = redstone.getAnalogInput(faceLaser)
- print("Signal strength on " .. faceLaser .. ": " .. signalPower)
- if signalPower == shootPower then
- -- If signal strength is equal to shootPower, fire the laser
- redstone.setOutput(faceLaser, true)
- redstone.setOutput(faceAlarm, true)
- print("Laser Amplifier activated, firing!")
- os.sleep(1)
- redstone.setOutput(faceLaser, false)
- redstone.setOutput(faceAlarm, false)
- -- Wait until signal drops to chargePower before cutting power
- while true do
- signalPower = redstone.getAnalogInput(faceLaser)
- if signalPower == chargePower then
- redstone.setOutput(facePower, true)
- print("Laser Amplifier power cut.")
- isPowered = true
- break
- end
- os.sleep(0.1)
- end
- else
- os.sleep(0.1)
- end
- -- Monitor reset signals
- if redstone.getInput(faceReset1) or redstone.getInput(faceReset2) then
- print("Reset signal received on " .. faceReset1 .. " or " .. faceReset2 .. ". Resetting the power...")
- if isPowered then
- redstone.setOutput(facePower, false)
- print("Laser Amplifier power restored.")
- isPowered = false
- end
- os.sleep(0.5)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement