Difference between revisions of "Colors (API)"

From ComputerCraft Wiki
Jump to: navigation, search
m (Fixed grammatical error)
Line 6: Line 6:
  
 
{{API table/row|[[colors.combine]]({{Type|number}} color1, {{Type|number}} color2, ...)|{{type|number}} value|
 
{{API table/row|[[colors.combine]]({{Type|number}} color1, {{Type|number}} color2, ...)|{{type|number}} value|
Combines a one or more colors (or sets of colors) into a larger set.
+
Combines one or more colors (or sets of colors) into a larger set.
 
|odd}}
 
|odd}}
  

Revision as of 01:28, 18 March 2014

The Colors API allows you to manipulate sets of colors. This is useful in conjunction with Bundled Cables from the RedPower mod, RedNet Cables from the MineFactory Reloaded mod, and colors on Advanced Computers and Advanced Monitors.

For the non-American English version just replace 'colors' with 'colours' and it will use the other API, colours—which is exactly the same, except in non-American English (e.g. gray is spelt grey and lightGray is spelt lightGrey).

Grid disk.png  Colors (API)
Function Return values Description
colors.combine(number color1, number color2, ...) number value

Combines one or more colors (or sets of colors) into a larger set.

colors.subtract(number colors, number color1, number color2, ...) number value

Removes one or more colors (or sets of colors) from an initial set.

colors.test(number colors, number color) boolean contained

Tests whether color is contained within colors.


Note: The standard addition (+) and subtraction (-) operators while able to be used on colors instead of colors.combine and colors.subtract should be avoided due to the nature of the colour format. For example
print(colors.white + colors.white)
will output 2 which is orange as opposed to
print(colors.combine(colors.white, colors.white))
will output 1 which is white.

Furthermore, the Bit (API) may be used on sets of colors. For example,

bCableLeft  = rs.getBundledInput("left")
bCableRight = rs.getBundledInput("right")

-- Get a number representing colors on in both right and left bundled cables
commonColors    = bit.band(bCableLeft, bCableRight)

-- Get all the colors active on either right or left
totalColors     = bit.bor(bCableLeft, bCableRight)

-- Get the colors which are active on right, or left, but not both at the same time
exclusiveColors = bit.bxor(bCableLeft, bCableRight)

-- Get the colors that are not active on the left
offColorsA      = bit.bnot(bCableLeft)

Colors

Color constants include, in ascending bit order (including character used in the paint program):

Color Decimal Hexadecimal Binary Paint Default
colors.white 1 0x1 0000000000000001 0
colors.orange 2 0x2 0000000000000010 1
colors.magenta 4 0x4 0000000000000100 2
colors.lightBlue 8 0x8 0000000000001000 3
colors.yellow 16 0x10 0000000000010000 4
colors.lime 32 0x20 0000000000100000 5
colors.pink 64 0x40 0000000001000000 6
colors.gray 128 0x80 0000000010000000 7
colors.lightGray 256 0x100 0000000100000000 8
colors.cyan 512 0x200 0000001000000000 9
colors.purple 1024 0x400 0000010000000000 a
colors.blue 2048 0x800 0000100000000000 b
colors.brown 4096 0x1000 0001000000000000 c
colors.green 8192 0x2000 0010000000000000 d
colors.red 16384 0x4000 0100000000000000 e
colors.black 32768 0x8000 1000000000000000 f