reuse icons and blbs to remove some content
This commit is contained in:
@ -1,64 +0,0 @@
|
||||
|
||||
datablock fxDTSBrickData(LogicGate_TextBrick2_Data){
|
||||
brickFile = $LuaLogic::Path @ "bricks/blb/TextBrick.blb";
|
||||
category = "Logic Bricks";
|
||||
subCategory = "Outputs";
|
||||
uiName = "Text Brick";
|
||||
iconName = $LuaLogic::Path @ "icons/Text Brick";
|
||||
hasPrint = 1;
|
||||
printAspectRatio = "Logic";
|
||||
orientationFix = 3;
|
||||
|
||||
isLogic = true;
|
||||
isLogicGate = true;
|
||||
isLogicInput = false;
|
||||
|
||||
logicUIName = "Text Brick";
|
||||
logicUIDesc = "Takes 9-bit serial input of format 1cxxxxxxxx10. If c==0, x = 8-bit ascii code. If c==1, lower 6 bits of x = color ID, bit 6 = fx glow, top bit = invert character. MSB first.";
|
||||
|
||||
logicInit = lualogic_readfile($LuaLogic::Path @ "bricks/outputs/text2-init.lua" );
|
||||
logicUpdate = lualogic_readfile($LuaLogic::Path @ "bricks/outputs/text2-update.lua");
|
||||
logicGlobal = lualogic_readfile($LuaLogic::Path @ "bricks/outputs/text2-global.lua");
|
||||
|
||||
numLogicPorts = 1;
|
||||
|
||||
logicPortType[0] = 1;
|
||||
logicPortPos[0] = "0 0 -1";
|
||||
logicPortDir[0] = 3;
|
||||
logicPortCauseUpdate[0] = true;
|
||||
logicPortUIName[0] = "In";
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_TextBrick2_Data");
|
||||
|
||||
function LogicGate_TextBrick2_Data::LuaLogic_Callback(%data, %brick, %arg) {
|
||||
%colorId = getWord(%arg, 0); if(%colorId != -1) %brick.setColor (%colorId);
|
||||
//%colorFx = getWord(%arg, 3); if(%colorFx != -1) %brick.setColorFx(%colorFx);
|
||||
%domain = getWord(%arg, 1);
|
||||
%print = getWord(%arg, 2);
|
||||
if(%domain !$= "_" && %print !$= "_") %brick.setPrint(lualogic_getprint(%print, %domain));
|
||||
}
|
||||
|
||||
|
||||
// Pah's half-width prints
|
||||
|
||||
datablock fxDtsBrickData(LogicGate_TextBrick2Top2_Data : LogicGate_TextBrick2_Data) {
|
||||
brickFile = $LuaLogic::Path @ "bricks/blb/ScreenTop.blb";
|
||||
uiName = "Text Brick Right";
|
||||
logicGlobal = "";
|
||||
logicPortPos[0] = "0 0 0";
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_TextBrick2Top2_Data");
|
||||
function LogicGate_TextBrick2Top2_Data::LuaLogic_Callback(%data, %brick, %arg) {
|
||||
LogicGate_TextBrick2_Data::LuaLogic_Callback(%data, %brick, %arg);
|
||||
}
|
||||
|
||||
datablock fxDtsBrickData(LogicGate_TextBrick2Bottom2_Data : LogicGate_TextBrick2_Data) {
|
||||
brickFile = $LuaLogic::Path @ "bricks/blb/ScreenBottom.blb";
|
||||
uiName = "Text Brick Left";
|
||||
logicGlobal = "";
|
||||
logicPortPos[0] = "0 0 0";
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_TextBrick2Bottom2_Data");
|
||||
function LogicGate_TextBrick2Bottom2_Data::LuaLogic_Callback(%data, %brick, %arg) {
|
||||
LogicGate_TextBrick2_Data::LuaLogic_Callback(%data, %brick, %arg);
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
|
||||
return function(gate)
|
||||
Gate.cb(gate,
|
||||
Gate.getportstate(gate, 1) +
|
||||
Gate.getportstate(gate, 2)*2 +
|
||||
Gate.getportstate(gate, 3)*4 +
|
||||
Gate.getportstate(gate, 4)*8
|
||||
)
|
||||
end
|
@ -1,69 +0,0 @@
|
||||
//bls 3
|
||||
|
||||
datablock fxDTSBrickData(LogicGate_Pixel2x2_Data){
|
||||
brickFile = $LuaLogic::Path @ "bricks/blb/2x2pixelbrick.blb";
|
||||
category = "Logic Bricks";
|
||||
subCategory = "Outputs";
|
||||
uiName = "Pixel 2x2";
|
||||
iconName = $LuaLogic::Path @ "icons/Pixel 2x2";
|
||||
hasPrint = 1;
|
||||
printAspectRatio = "Logic";
|
||||
orientationFix = 0;
|
||||
|
||||
isLogic = true;
|
||||
isLogicGate = true;
|
||||
isLogicInput = false;
|
||||
|
||||
logicUIName = "Pixel 2x2";
|
||||
logicUIDesc = "4 Pixels glued together with one print, for better ghosting performance and brickcount.";
|
||||
|
||||
logicUpdate = lualogic_readfile($LuaLogic::Path @ "bricks/outputs/pixel2x2-update.lua");
|
||||
|
||||
numLogicPorts = 4;
|
||||
|
||||
logicPortType [0] = 1;
|
||||
logicPortPos [0] = "0 -1 -3";
|
||||
logicPortDir [0] = 2;
|
||||
logicPortCauseUpdate[0] = true;
|
||||
logicPortUIName [0] = "BR";
|
||||
|
||||
logicPortType [1] = 1;
|
||||
logicPortPos [1] = "0 1 -3";
|
||||
logicPortDir [1] = 2;
|
||||
logicPortCauseUpdate[1] = true;
|
||||
logicPortUIName [1] = "BL";
|
||||
|
||||
logicPortType [2] = 1;
|
||||
logicPortPos [2] = "0 -1 1";
|
||||
logicPortDir [2] = 2;
|
||||
logicPortCauseUpdate[2] = true;
|
||||
logicPortUIName [2] = "TR";
|
||||
|
||||
logicPortType [3] = 1;
|
||||
logicPortPos [3] = "0 1 1";
|
||||
logicPortDir [3] = 2;
|
||||
logicPortCauseUpdate[3] = true;
|
||||
logicPortUIName [3] = "TL";
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_Pixel3_Data");
|
||||
|
||||
function LogicGate_Pixel2x2_Data::LuaLogic_Callback(%data, %brick, %state) {
|
||||
switch(%state) {
|
||||
case 0x0: %brick.setPrint(lualogic_getprint("color000"));
|
||||
case 0x1: %brick.setPrint(lualogic_getprint("pixel2x2_1"));
|
||||
case 0x2: %brick.setPrint(lualogic_getprint("pixel2x2_2"));
|
||||
case 0x3: %brick.setPrint(lualogic_getprint("pixel2x2_3"));
|
||||
case 0x4: %brick.setPrint(lualogic_getprint("pixel2x2_4"));
|
||||
case 0x5: %brick.setPrint(lualogic_getprint("pixel2x2_5"));
|
||||
case 0x6: %brick.setPrint(lualogic_getprint("pixel2x2_6"));
|
||||
case 0x7: %brick.setPrint(lualogic_getprint("pixel2x2_7"));
|
||||
case 0x8: %brick.setPrint(lualogic_getprint("pixel2x2_8"));
|
||||
case 0x9: %brick.setPrint(lualogic_getprint("pixel2x2_9"));
|
||||
case 0xA: %brick.setPrint(lualogic_getprint("pixel2x2_A"));
|
||||
case 0xB: %brick.setPrint(lualogic_getprint("pixel2x2_B"));
|
||||
case 0xC: %brick.setPrint(lualogic_getprint("pixel2x2_C"));
|
||||
case 0xD: %brick.setPrint(lualogic_getprint("pixel2x2_D"));
|
||||
case 0xE: %brick.setPrint(lualogic_getprint("pixel2x2_E"));
|
||||
case 0xF: %brick.setPrint(lualogic_getprint("space"));
|
||||
}
|
||||
}
|
@ -5,7 +5,7 @@ datablock fxDTSBrickData(LogicGate_Pixel3_Data){
|
||||
category = "Logic Bricks";
|
||||
subCategory = "Outputs";
|
||||
uiName = "Logic Pixel";
|
||||
iconName = $LuaLogic::Path @ "icons/Text Brick";
|
||||
iconName = $LuaLogic::Path @ "bricks/icons/Text Brick";
|
||||
hasPrint = 1;
|
||||
printAspectRatio = "Logic";
|
||||
orientationFix = 3;
|
||||
@ -33,23 +33,23 @@ function LogicGate_Pixel3_Data::LuaLogic_Callback(%data, %brick, %state){
|
||||
if(%state){
|
||||
%brick.setPrint(lualogic_getprint("space"));
|
||||
}else{
|
||||
%brick.setPrint(lualogic_getprint("color000"));
|
||||
%brick.setPrint(lualogic_getprint("color_000"));
|
||||
}
|
||||
}
|
||||
|
||||
datablock fxDtsBrickData(LogicGate_Pixel3Upsidedown_Data : LogicGate_Pixel3_Data){
|
||||
brickFile = $LuaLogic::Path @ "bricks/blb/TextBrickUpsidedown.blb";
|
||||
uiName = "Logic Pixel Upside Down";
|
||||
|
||||
logicUiName = "Pixel Upside Down";
|
||||
|
||||
logicPortPos[0] = "0 0 1";
|
||||
};
|
||||
lualogic_registergatedefinition("LogicGate_Pixel3Upsidedown_Data");
|
||||
|
||||
function LogicGate_Pixel3Upsidedown_Data::LuaLogic_Callback(%data, %brick, %state){
|
||||
LogicGate_Pixel3_Data::LuaLogic_Callback(%data, %brick, %state);
|
||||
}
|
||||
|
||||
$ND::ManualSymmetryZDB["Logic Pixel" ] = "Logic Pixel Upside Down";
|
||||
$ND::ManualSymmetryZDB["Logic Pixel Upside Down"] = "Logic Pixel" ;
|
||||
//datablock fxDtsBrickData(LogicGate_Pixel3Upsidedown_Data : LogicGate_Pixel3_Data){
|
||||
// brickFile = $LuaLogic::Path @ "bricks/blb/TextBrickUpsidedown.blb";
|
||||
// uiName = "Logic Pixel Upside Down";
|
||||
//
|
||||
// logicUiName = "Pixel Upside Down";
|
||||
//
|
||||
// logicPortPos[0] = "0 0 1";
|
||||
//};
|
||||
//lualogic_registergatedefinition("LogicGate_Pixel3Upsidedown_Data");
|
||||
//
|
||||
//function LogicGate_Pixel3Upsidedown_Data::LuaLogic_Callback(%data, %brick, %state){
|
||||
// LogicGate_Pixel3_Data::LuaLogic_Callback(%data, %brick, %state);
|
||||
//}
|
||||
//
|
||||
//$ND::ManualSymmetryZDB["Logic Pixel" ] = "Logic Pixel Upside Down";
|
||||
//$ND::ManualSymmetryZDB["Logic Pixel Upside Down"] = "Logic Pixel" ;
|
||||
|
@ -1,276 +0,0 @@
|
||||
--bls 3
|
||||
textbrick2_bitsNeeded = 9
|
||||
|
||||
textbrick2_idxToPrint = {
|
||||
[0x00] = "space",
|
||||
[0x01] = "space",
|
||||
[0x02] = "space",
|
||||
[0x03] = "space",
|
||||
[0x04] = "space",
|
||||
[0x05] = "space",
|
||||
[0x06] = "space",
|
||||
[0x07] = "space",
|
||||
[0x08] = "space",
|
||||
[0x09] = "space",
|
||||
[0x0A] = "space",
|
||||
[0x0B] = "space",
|
||||
[0x0C] = "space",
|
||||
[0x0D] = "space",
|
||||
[0x0E] = "space",
|
||||
[0x0F] = "space",
|
||||
|
||||
[0x10] = "color000",
|
||||
[0x11] = "color001",
|
||||
[0x12] = "color010",
|
||||
[0x13] = "color011",
|
||||
[0x14] = "color100",
|
||||
[0x15] = "color101",
|
||||
[0x16] = "color110",
|
||||
[0x17] = "color111",
|
||||
[0x18] = "space",
|
||||
[0x19] = "space",
|
||||
[0x1A] = "space",
|
||||
[0x1B] = "space",
|
||||
[0x1C] = "space",
|
||||
[0x1D] = "space",
|
||||
[0x1E] = "space",
|
||||
[0x1F] = "space",
|
||||
|
||||
[0x20] = "space",
|
||||
[0x21] = "bang",
|
||||
[0x22] = "apostrophe2",
|
||||
[0x23] = "pound",
|
||||
[0x24] = "dollar",
|
||||
[0x25] = "percent",
|
||||
[0x26] = "and",
|
||||
[0x27] = "apostrophe",
|
||||
[0x28] = "roundbracketleft",
|
||||
[0x29] = "roundbracketright",
|
||||
[0x2A] = "asterisk",
|
||||
[0x2B] = "plus",
|
||||
[0x2C] = "comma",
|
||||
[0x2D] = "minus",
|
||||
[0x2E] = "period",
|
||||
[0x2F] = "slashright",
|
||||
|
||||
[0x30] = "0",
|
||||
[0x31] = "1",
|
||||
[0x32] = "2",
|
||||
[0x33] = "3",
|
||||
[0x34] = "4",
|
||||
[0x35] = "5",
|
||||
[0x36] = "6",
|
||||
[0x37] = "7",
|
||||
[0x38] = "8",
|
||||
[0x39] = "9",
|
||||
[0x3A] = "colon",
|
||||
[0x3B] = "semicolon",
|
||||
[0x3C] = "less_than",
|
||||
[0x3D] = "equals",
|
||||
[0x3E] = "greater_than",
|
||||
[0x3F] = "qmark",
|
||||
|
||||
[0x40] = "at",
|
||||
[0x41] = "A",
|
||||
[0x42] = "B",
|
||||
[0x43] = "C",
|
||||
[0x44] = "D",
|
||||
[0x45] = "E",
|
||||
[0x46] = "F",
|
||||
[0x47] = "G",
|
||||
[0x48] = "H",
|
||||
[0x49] = "I",
|
||||
[0x4A] = "J",
|
||||
[0x4B] = "K",
|
||||
[0x4C] = "L",
|
||||
[0x4D] = "M",
|
||||
[0x4E] = "N",
|
||||
[0x4F] = "O",
|
||||
|
||||
[0x50] = "P",
|
||||
[0x51] = "Q",
|
||||
[0x52] = "R",
|
||||
[0x53] = "S",
|
||||
[0x54] = "T",
|
||||
[0x55] = "U",
|
||||
[0x56] = "V",
|
||||
[0x57] = "W",
|
||||
[0x58] = "X",
|
||||
[0x59] = "Y",
|
||||
[0x5A] = "Z",
|
||||
[0x5B] = "squarebracketleft",
|
||||
[0x5C] = "slashleft",
|
||||
[0x5D] = "squarebracketright",
|
||||
[0x5E] = "caret",
|
||||
[0x5F] = "underscore",
|
||||
|
||||
[0x60] = "backtick",
|
||||
[0x61] = "Alcase",
|
||||
[0x62] = "Blcase",
|
||||
[0x63] = "Clcase",
|
||||
[0x64] = "Dlcase",
|
||||
[0x65] = "Elcase",
|
||||
[0x66] = "Flcase",
|
||||
[0x67] = "Glcase",
|
||||
[0x68] = "Hlcase",
|
||||
[0x69] = "Ilcase",
|
||||
[0x6A] = "Jlcase",
|
||||
[0x6B] = "Klcase",
|
||||
[0x6C] = "Llcase",
|
||||
[0x6D] = "Mlcase",
|
||||
[0x6E] = "Nlcase",
|
||||
[0x6F] = "Olcase",
|
||||
|
||||
[0x70] = "Plcase",
|
||||
[0x71] = "Qlcase",
|
||||
[0x72] = "Rlcase",
|
||||
[0x73] = "Slcase",
|
||||
[0x74] = "Tlcase",
|
||||
[0x75] = "Ulcase",
|
||||
[0x76] = "Vlcase",
|
||||
[0x77] = "Wlcase",
|
||||
[0x78] = "Xlcase",
|
||||
[0x79] = "Ylcase",
|
||||
[0x7A] = "Zlcase",
|
||||
[0x7B] = "curlybracketleft",
|
||||
[0x7C] = "verticalbar",
|
||||
[0x7D] = "curlybracketright",
|
||||
[0x7E] = "tilde",
|
||||
[0x7F] = "space",
|
||||
|
||||
[0x80] = "color000",
|
||||
[0x81] = "pixel2x2_1",
|
||||
[0x82] = "pixel2x2_2",
|
||||
[0x83] = "pixel2x2_3",
|
||||
[0x84] = "pixel2x2_4",
|
||||
[0x85] = "pixel2x2_5",
|
||||
[0x86] = "pixel2x2_6",
|
||||
[0x87] = "pixel2x2_7",
|
||||
[0x88] = "pixel2x2_8",
|
||||
[0x89] = "pixel2x2_9",
|
||||
[0x8A] = "pixel2x2_A",
|
||||
[0x8B] = "pixel2x2_B",
|
||||
[0x8C] = "pixel2x2_C",
|
||||
[0x8D] = "pixel2x2_D",
|
||||
[0x8E] = "pixel2x2_E",
|
||||
[0x8F] = "color111",
|
||||
|
||||
[0x90] = "space",
|
||||
[0x91] = "space",
|
||||
[0x92] = "space",
|
||||
[0x93] = "space",
|
||||
[0x94] = "space",
|
||||
[0x95] = "space",
|
||||
[0x96] = "space",
|
||||
[0x97] = "space",
|
||||
[0x98] = "space",
|
||||
[0x99] = "space",
|
||||
[0x9A] = "space",
|
||||
[0x9B] = "space",
|
||||
[0x9C] = "space",
|
||||
[0x9D] = "space",
|
||||
[0x9E] = "space",
|
||||
[0x9F] = "space",
|
||||
|
||||
[0xA0] = "jp-yen",
|
||||
[0xA1] = "jp-period",
|
||||
[0xA2] = "jp-left-bracket",
|
||||
[0xA3] = "jp-right-bracket",
|
||||
[0xA4] = "jp-comma",
|
||||
[0xA5] = "jp-dot",
|
||||
[0xA6] = "jp-wo",
|
||||
[0xA7] = "jp-small-a",
|
||||
[0xA8] = "jp-small-i",
|
||||
[0xA9] = "jp-small-u",
|
||||
[0xAA] = "jp-small-e",
|
||||
[0xAB] = "jp-small-o",
|
||||
[0xAC] = "jp-small-ya",
|
||||
[0xAD] = "jp-small-yu",
|
||||
[0xAE] = "jp-small-yo",
|
||||
[0xAF] = "jp-small-tsu",
|
||||
|
||||
[0xB0] = "jp-dash",
|
||||
[0xB1] = "jp-a",
|
||||
[0xB2] = "jp-i",
|
||||
[0xB3] = "jp-u",
|
||||
[0xB4] = "jp-e",
|
||||
[0xB5] = "jp-o",
|
||||
[0xB6] = "jp-ka",
|
||||
[0xB7] = "jp-ki",
|
||||
[0xB8] = "jp-ku",
|
||||
[0xB9] = "jp-ke",
|
||||
[0xBA] = "jp-ko",
|
||||
[0xBB] = "jp-sa",
|
||||
[0xBC] = "jp-shi",
|
||||
[0xBD] = "jp-su",
|
||||
[0xBE] = "jp-se",
|
||||
[0xBF] = "jp-so",
|
||||
|
||||
[0xC0] = "jp-ta",
|
||||
[0xC1] = "jp-chi",
|
||||
[0xC2] = "jp-tsu",
|
||||
[0xC3] = "jp-te",
|
||||
[0xC4] = "jp-to",
|
||||
[0xC5] = "jp-na",
|
||||
[0xC6] = "jp-ni",
|
||||
[0xC7] = "jp-nu",
|
||||
[0xC8] = "jp-ne",
|
||||
[0xC9] = "jp-no",
|
||||
[0xCA] = "jp-ha",
|
||||
[0xCB] = "jp-hi",
|
||||
[0xCC] = "jp-fu",
|
||||
[0xCD] = "jp-he",
|
||||
[0xCE] = "jp-ho",
|
||||
[0xCF] = "jp-ma",
|
||||
|
||||
[0xD0] = "jp-mi",
|
||||
[0xD1] = "jp-mu",
|
||||
[0xD2] = "jp-me",
|
||||
[0xD3] = "jp-mo",
|
||||
[0xD4] = "jp-ya",
|
||||
[0xD5] = "jp-yu",
|
||||
[0xD6] = "jp-yo",
|
||||
[0xD7] = "jp-ra",
|
||||
[0xD8] = "jp-ri",
|
||||
[0xD9] = "jp-ru",
|
||||
[0xDA] = "jp-re",
|
||||
[0xDB] = "jp-ro",
|
||||
[0xDC] = "jp-wa",
|
||||
[0xDD] = "jp-n",
|
||||
[0xDE] = "jp-dakuten",
|
||||
[0xDF] = "jp-handakuten",
|
||||
|
||||
[0xE0] = "space",
|
||||
[0xE1] = "space",
|
||||
[0xE2] = "space",
|
||||
[0xE3] = "space",
|
||||
[0xE4] = "space",
|
||||
[0xE5] = "space",
|
||||
[0xE6] = "space",
|
||||
[0xE7] = "space",
|
||||
[0xE8] = "space",
|
||||
[0xE9] = "space",
|
||||
[0xEA] = "space",
|
||||
[0xEB] = "space",
|
||||
[0xEC] = "space",
|
||||
[0xED] = "space",
|
||||
[0xEE] = "space",
|
||||
[0xEF] = "space",
|
||||
|
||||
[0xF0] = "space",
|
||||
[0xF1] = "space",
|
||||
[0xF2] = "space",
|
||||
[0xF3] = "space",
|
||||
[0xF4] = "space",
|
||||
[0xF5] = "space",
|
||||
[0xF6] = "space",
|
||||
[0xF7] = "space",
|
||||
[0xF8] = "space",
|
||||
[0xF9] = "space",
|
||||
[0xFA] = "space",
|
||||
[0xFB] = "space",
|
||||
[0xFC] = "space",
|
||||
[0xFD] = "space",
|
||||
[0xFE] = "space",
|
||||
[0xFF] = "space",
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
|
||||
return function(gate)
|
||||
Gate.initdata(gate)
|
||||
local gatedata = Gate.getdata(gate)
|
||||
|
||||
gatedata.lastTickChanged = 0
|
||||
gatedata.listenState = "wait"
|
||||
gatedata.bitsReceived = 0
|
||||
gatedata.valReceived = 0
|
||||
end
|
@ -1,63 +0,0 @@
|
||||
|
||||
local function getBit(gate, val)
|
||||
local gatedata = Gate.getdata(gate)
|
||||
|
||||
if gatedata.listenState=="wait" then
|
||||
if val==1 then
|
||||
gatedata.listenState = "getbits"
|
||||
gatedata.bitsReceived = 0
|
||||
end
|
||||
elseif gatedata.listenState=="getbits" then
|
||||
gatedata.valReceived = gatedata.valReceived + math.pow(2, textbrick2_bitsNeeded-1-gatedata.bitsReceived)*val
|
||||
gatedata.bitsReceived = gatedata.bitsReceived+1
|
||||
|
||||
if gatedata.bitsReceived==textbrick2_bitsNeeded then
|
||||
gatedata.listenState = "terminate"
|
||||
end
|
||||
elseif gatedata.listenState=="terminate" then
|
||||
if val==1 then
|
||||
local v = gatedata.valReceived
|
||||
local iscolor = math.floor(v/256)==1 -- first bit
|
||||
if iscolor then
|
||||
local printdomain = (math.floor(v/128)%2)==1 and "terminalInv" or "terminal" -- 8th lowest bit
|
||||
local colorfx = (math.floor(v/64)%2)==1 and 3 or 0 -- 7th lowest bit
|
||||
local colorid = v % 64 -- last 6 bits
|
||||
gatedata.printdomain = printdomain
|
||||
gatedata.colorid = colorid
|
||||
gatedata.colorfx = colorfx
|
||||
else
|
||||
local printid = v % 256 -- last 8 bits
|
||||
local printname = textbrick2_idxToPrint[printid] or "space"
|
||||
gatedata.printname = printname
|
||||
end
|
||||
Gate.cb(gate, (gatedata.colorid or -1).." "..(gatedata.printdomain or "terminal").." "..(gatedata.printname or "_").." "..(gatedata.colorfx or -1))
|
||||
end
|
||||
|
||||
gatedata.listenState = "wait"
|
||||
|
||||
gatedata.bitsReceived = 0
|
||||
gatedata.valReceived = 0
|
||||
end
|
||||
end
|
||||
|
||||
local function changeTo(gate, val)
|
||||
local gatedata = Gate.getdata(gate)
|
||||
|
||||
local tick = Gate.gettick(gate)
|
||||
local ticks = tick-gatedata.lastTickChanged
|
||||
|
||||
local bits = math.min(ticks, textbrick2_bitsNeeded+3)
|
||||
for i = 1, bits do
|
||||
getBit(gate, val)
|
||||
end
|
||||
|
||||
gatedata.lastTickChanged = tick
|
||||
end
|
||||
|
||||
return function(gate)
|
||||
if Gate.getportisrising(gate, 1) then
|
||||
changeTo(gate, 0)
|
||||
elseif Gate.getportisfalling(gate, 1) then
|
||||
changeTo(gate, 1)
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user