add io brick, misc fixes

This commit is contained in:
Redo
2024-06-22 18:17:21 -06:00
parent 38351b8a3e
commit a25f184c94
21 changed files with 12570 additions and 46 deletions

View File

@ -14,7 +14,7 @@ datablock fxDTSBrickData(LogicGate_TextBrick2_Data){
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, top bit = invert character. MSB first.";
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");

View File

@ -0,0 +1,9 @@
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

View File

@ -0,0 +1,69 @@
//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"));
}
}

View File

@ -1,3 +1,4 @@
//bls 3
datablock fxDTSBrickData(LogicGate_Pixel3_Data){
brickFile = $LuaLogic::Path @ "bricks/blb/TextBrick.blb";

View File

@ -1,4 +1,4 @@
--bls 3
textbrick2_bitsNeeded = 9
textbrick2_idxToPrint = {
@ -44,8 +44,8 @@ textbrick2_idxToPrint = {
[0x25] = "percent",
[0x26] = "and",
[0x27] = "apostrophe",
[0x28] = "roundbracketright",
[0x29] = "roundbracketleft",
[0x28] = "roundbracketleft",
[0x29] = "roundbracketright",
[0x2A] = "asterisk",
[0x2B] = "plus",
[0x2C] = "comma",
@ -138,22 +138,22 @@ textbrick2_idxToPrint = {
[0x7E] = "tilde",
[0x7F] = "space",
[0x80] = "space",
[0x81] = "space",
[0x82] = "space",
[0x83] = "space",
[0x84] = "space",
[0x85] = "space",
[0x86] = "space",
[0x87] = "space",
[0x88] = "space",
[0x89] = "space",
[0x8A] = "space",
[0x8B] = "space",
[0x8C] = "space",
[0x8D] = "space",
[0x8E] = "space",
[0x8F] = "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",