Difference between revisions of "Peripheral.find"

From ComputerCraft Wiki
Jump to: navigation, search
m (Rewording.)
Line 6: Line 6:
 
|api=peripheral
 
|api=peripheral
 
|addon=ComputerCraft
 
|addon=ComputerCraft
|desc=Returns a list of handles to connected peripherals that match the supplied type and if the filter function supplied (optional) returns true once called with the peripheral name and peripheral handle as arguments. '''''Requires ComputerCraft 1.6 or later.'''''
+
|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()]]).<br><br>
 +
 
 +
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".
 
|examples=
 
|examples=
 
{{Example
 
{{Example

Revision as of 10:37, 4 May 2014


Grid Redstone.png  Function peripheral.find
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()).

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

Grid paper.png  Example
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.



Grid paper.png  Example
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.