Difference between revisions of "Redstone (event)"
From ComputerCraft Wiki
(Adding Example code) |
(Added a second more complete example of usage, and how you might treat this event.) |
||
Line 4: | Line 4: | ||
|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. | ||
Line 13: | Line 13: | ||
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 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 | ||
+ | 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") -- Yeild 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 | ||
}} | }} |
Revision as of 09:27, 13 January 2013
This page needs some serious TLC, stat! Please help us by cleaning it, fixing it up, or sparing it some love.
(Reason: A demonstration on the use and handling of this event would be beneficial. AfterLifeLochie 16:13, 30 November 2012 (MSK)) |
Event redstone | |
Fired when any Redstone inputs change on any of the sides of the computer. | |
Returned Object 1 | Nothing |
Basic Usage
Application