Difference between revisions of "Peripheral.find"
From ComputerCraft Wiki
MKlegoman357 (Talk | contribs) m (Expanded) |
MKlegoman357 (Talk | contribs) |
||
| (4 intermediate revisions by 3 users not shown) | |||
| Line 2: | Line 2: | ||
{{Function | {{Function | ||
|name=peripheral.find | |name=peripheral.find | ||
| − | |args={{type|string}} type | + | |args={{type|string}} type [, {{type|function}} fnFilter( name, object )] |
|returns={{Type|table}} handle1, {{Type|table}} handle2, ... handles to peripherals of the given type | |returns={{Type|table}} handle1, {{Type|table}} handle2, ... handles to peripherals of the given type | ||
|api=peripheral | |api=peripheral | ||
|addon=ComputerCraft | |addon=ComputerCraft | ||
| − | |desc= | + | |desc=Introduced by ComputerCraft 1.6, returns a list of handles for connected peripherals that match the supplied type (essentially performing as a filtered version of [[peripheral.wrap|peripheral.wrap()]]). If multiple peripherals are found, they are all returned as separate values, in the same order [[peripheral.getNames]]() returns. A custom function may additionally be passed as a parameter - if it's supplied, each matching peripheral's name and handle will be passed to it during the search, and they'll only be included in the final results if it returns <var>true</var>. |
|examples= | |examples= | ||
{{Example | {{Example | ||
| Line 16: | Line 16: | ||
end | end | ||
|output=If there is a monitor connected 'Hello' will be written on it. | |output=If there is a monitor connected 'Hello' will be written on it. | ||
| + | }} | ||
| + | {{Example | ||
| + | |desc=Finds 2 '''advanced''' monitors and writes 'Hello' on the first and 'World' on the second. | ||
| + | |code= local mon1, mon2 = '''peripheral.find("monitor", function(name, object) return object.[[term.isColor|isColour]]() end)''' | ||
| + | |||
| + | if mon1 then | ||
| + | mon1.[[term.setTextColor|setTextColour]]([[colors|colours]].blue) | ||
| + | mon1.[[term.write|write]]("Hello") | ||
| + | end | ||
| + | if mon2 then | ||
| + | mon2.[[term.setTextColor|setTextColour]]([[colors|colours]].red) | ||
| + | mon2.[[term.write|write]]("World") | ||
| + | end | ||
| + | |output=If it finds 1 advanced monitor, 'Hello' will be written on it. If it finds 2 advanced monitors, 'Hello' will be written on the first and 'World' on the second. | ||
}} | }} | ||
}} | }} | ||
[[Category:Lua_Core_Functions]] | [[Category:Lua_Core_Functions]] | ||
Latest revision as of 16:18, 1 August 2015
| Introduced by ComputerCraft 1.6, returns a list of handles for connected peripherals that match the supplied type (essentially performing as a filtered version of peripheral.wrap()). If multiple peripherals are found, they are all returned as separate values, in the same order peripheral.getNames() returns. A custom function may additionally be passed as a parameter - if it's supplied, each matching peripheral's name and handle will be passed to it during the search, and they'll only be included in the final results if it returns true. | |
| Syntax | peripheral.find(string type [, function fnFilter( name, object )]) |
| Returns | table handle1, table handle2, ... handles to peripherals of the given type |
| Part of | ComputerCraft |
| API | peripheral |
Examples
| Finds a monitor and writes 'Hello' on it. | |
| Code |
local monitor = peripheral.find("monitor")
if monitor then
monitor.write("Hello")
end
|
| Output | If there is a monitor connected 'Hello' will be written on it. |
| Finds 2 advanced monitors and writes 'Hello' on the first and 'World' on the second. | |
| Code |
local mon1, mon2 = peripheral.find("monitor", function(name, object) return object.isColour() end)
if mon1 then
mon1.setTextColour(colours.blue)
mon1.write("Hello")
end
if mon2 then
mon2.setTextColour(colours.red)
mon2.write("World")
end
|
| Output | If it finds 1 advanced monitor, 'Hello' will be written on it. If it finds 2 advanced monitors, 'Hello' will be written on the first and 'World' on the second. |