Difference between revisions of "Redstone (event)"
From ComputerCraft Wiki
(Adding Example code) |
m (The NeedsWork note seems to have already been fixed.) |
||
(3 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | |||
− | |||
{{Event | {{Event | ||
|name=redstone | |name=redstone | ||
|desc=Fired when any Redstone inputs change on any of the sides of the computer. | |desc=Fired when any Redstone inputs change on any of the sides of the computer. | ||
− | }} | + | }}=== Basic Usage === |
{{Example | {{Example | ||
|desc=Alerts via console output when a redstone input changes. | |desc=Alerts via console output when a redstone input changes. | ||
|code= | |code= | ||
while true do | while true do | ||
− | event = os.pullEvent("redstone") | + | local event = os.pullEvent("redstone") |
print("Redstone input changed.") | print("Redstone input changed.") | ||
end | end | ||
− | |output=This will tell one when the redstone event is triggered. Note this doesn't tell you the side of the event. | + | |output=This will tell one when the redstone event is triggered. Note that this doesn't tell you the side of the event. |
+ | }}=== Application === | ||
+ | {{Example | ||
+ | |desc=This program will store the values of each redstone signal on load, and on each state change. It will further display on the screen which state was changed. | ||
+ | |code= | ||
+ | -- Set up a list which contains the sides as keys, and the current redstone state of each side as a boolean value | ||
+ | local statelist = { | ||
+ | ["top"] = rs.getInput("top"), | ||
+ | ["front"] = rs.getInput("front"), | ||
+ | ["left"] = rs.getInput("left"), | ||
+ | ["right"] = rs.getInput("right"), | ||
+ | ["back"] = rs.getInput("back"), | ||
+ | ["bottom"] = rs.getInput("bottom"), | ||
+ | } | ||
+ | |||
+ | -- Ready the terminal for printing to | ||
+ | term.clear() | ||
+ | term.setCursorPos(1,1) | ||
+ | |||
+ | while true do -- Start an endless loop | ||
+ | os.pullEvent("redstone") -- Yield the computer until some redstone changes | ||
+ | -- We don't care what the event returns, since the first variable will be "redstone" and the rest will be nil. | ||
+ | |||
+ | -- Now we check each side to see if it's changed. | ||
+ | for side, state in pairs(statelist) do -- Run the lines of code in this loop for each key/value pair in statelist | ||
+ | if rs.getInput(side) ~= state then -- If the side we're checking doesn't match what it was last time we checked then | ||
+ | print(side.." is now "..tostring(rs.getInput(side))) -- Print the new state of the side. | ||
+ | statelist[side] = rs.getInput(side) -- Update the statelist with the new change | ||
+ | end | ||
+ | end | ||
+ | end | ||
}} | }} |
Latest revision as of 04:35, 25 March 2014
Event redstone | |
Fired when any Redstone inputs change on any of the sides of the computer. | |
Returned Object 1 | Nothing |
Basic Usage
Application