Difference between revisions of "Peripheral.find"

From ComputerCraft Wiki
Jump to: navigation, search
m (Rewording.)
Line 20: Line 20:
 
}}
 
}}
 
{{Example
 
{{Example
|desc=Finds 2 '''advanced''' monitors and writes 'Hello' on the first and 'World' on the second.
+
|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.isColour() end)'''
 
|code= local mon1, mon2 = '''peripheral.find("monitor", function(name, object) return object.isColour() end)'''
 
   
 
   
Line 34: Line 34:
 
}}
 
}}
 
}}
 
}}
 +
 +
{{Example
 +
|desc=If six monitors were to be attached to a computer, peripheral.find("monitor") would return their handles in that order: Bottom, top, back, front, right and left.
 +
That order always stays the same. The bottom peripheral will always have the priority and be returned first.
 +
peripheral.getNames() follows the same return pattern. It could be used to find out the order in which the peripheral handles will be returned when using peripheral.find().
 +
|code= local bottomMonitor, topMonitor, backMonitor, frontMonitor, rightMonitor, leftMonitor = '''peripheral.find("monitor")'''
 +
textutils.tabulate(peripheral.getNames())
 +
 +
|output= Will print the string 'bottom top    back  front  right  left' on the terminal.
 +
}}
 +
 +
  
 
[[Category:Lua_Core_Functions]]
 
[[Category:Lua_Core_Functions]]

Revision as of 15:24, 1 August 2015


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.



Grid paper.png  Example
If six monitors were to be attached to a computer, peripheral.find("monitor") would return their handles in that order: Bottom, top, back, front, right and left.

That order always stays the same. The bottom peripheral will always have the priority and be returned first.

peripheral.getNames() follows the same return pattern. It could be used to find out the order in which the peripheral handles will be returned when using peripheral.find().
Code
local bottomMonitor, topMonitor, backMonitor, frontMonitor, rightMonitor, leftMonitor = peripheral.find("monitor")
textutils.tabulate(peripheral.getNames())
Output  Will print the string 'bottom top back front right left' on the terminal.