Skip to content

API Component

Florian Nücke edited this page Jan 31, 2014 · 6 revisions

The component API is used to access and interact with components available to a computer. Also see the page on component interaction.

  • component.get(address: string, componentType: string): string | (nil, string)
    Tries to resolve an abbreviated address to a full address. Returns the full address on success, or nil and an error message otherwise. Optionally filters by component type.
  • component.isAvailable(componentType: string): boolean
    Checks if there is a primary component of the specified component type.
  • component.getPrimary(componentType: string): table
    Gets the proxy for the primary component of the specified type. Throws an error if there is no primary component of the specified type.
  • component.setPrimary(componentType: string, address: string)
    Sets a new primary component for the specified component type. The address may be abbreviated, but must be valid if it is not nil. Triggers the component_unavailable and component_available signals if set to nil or a new value, respectively.
  • component.list([filter: string]): function
    Returns an iterator which returns pairs of address, type for each component connected to the computer. It optionally takes a filter - if specified this will only return those components for which the filter is a substring of the component type. For example:
-- prints `redstone` for each attached redstone card.
for _, name in component.list("red") do print(name) end

Note that the component API has a metatable that allows the following syntax:

local rs0 = component.getPrimary("redstone")
local rs1 = component.redstone -- syntactic sugar
print(rs0 == rs1) -- true
Clone this wiki locally