16 個のバイナリ入力のビットフィールドを表す整数を返す関数を呼び出しています。各色はオンまたはオフのいずれかになります。
古い状態と新しい状態の間の変更を取得する関数を作成しようとしていますが、
例えば
function getChanges(oldColors,newColors)
sampleOutput = {white = "",orange="added",magenta="removed" .....}
return sampleOutput
end
newColors から oldColors を差し引き、oldColors から新しい色を差し引こうとしましたが、値が 1 つ以上変化するとカオスになるようです。
これは、複数の入力から立ち上がり/立ち下がりエッジを検出するためです。
* *編集: 利用可能な lua bit API のサブセットがあるようです
from:コンピュータークラフトウィキ
colors.white 1 0x1 0000000000000001
colors.orange 2 0x2 0000000000000010
colors.magenta 4 0x4 0000000000000100
colors.lightBlue 8 0x8 0000000000001000
colors.yellow 16 0x10 0000000000010000
colors.lime 32 0x20 0000000000100000
colors.pink 64 0x40 0000000001000000
colors.gray 128 0x80 0000000010000000
colors.lightGray 256 0x100 0000000100000000
colors.cyan 512 0x200 0000001000000000
colors.purple 1024 0x400 0000010000000000
colors.blue 2048 0x800 0000100000000000
colors.brown 4096 0x1000 0001000000000000
colors.green 8192 0x2000 0010000000000000
colors.red 16384 0x4000 0100000000000000
colors.black 32768 0x8000 1000000000000000
(ここに値の表があるはずでしたが、マークダウンの構文がわかりません。stackoverflow が標準の html 部分を無視しているようです。)