added automatic registration for non-builtin gate datablocks

This commit is contained in:
Redo 2019-04-06 19:02:43 -05:00
parent b7b366b412
commit 5f58a531a8
3 changed files with 449 additions and 428 deletions

View File

@ -60,18 +60,18 @@ textbrick_idxToPrint = textbrick_idxToPrint or {
[0x35] = "apostrophe2", [0x35] = "apostrophe2",
[0x36] = "colon", [0x36] = "colon",
[0x37] = "comma", [0x37] = "comma",
[0x38] = "curlybracketleft", [0x38] = "curlybracketright",
[0x39] = "curlybracketright", [0x39] = "curlybracketleft",
[0x3A] = "currencysign", [0x3A] = "currencysign",
[0x3B] = "euro", [0x3B] = "euro",
[0x3C] = "onehalf", [0x3C] = "onehalf",
[0x3D] = "poundsymbol", [0x3D] = "poundsymbol",
[0x3E] = "roundbracketleft", [0x3E] = "roundbracketright",
[0x3F] = "roundbracketright", [0x3F] = "roundbracketleft",
[0x40] = "slashleft", [0x40] = "slashleft",
[0x41] = "slashright", [0x41] = "slashright",
[0x42] = "squarebracketleft", [0x42] = "squarebracketright",
[0x43] = "squarebracketright", [0x43] = "squarebracketleft",
[0x44] = "tilde", [0x44] = "tilde",
[0x45] = "umlaut", [0x45] = "umlaut",
[0x46] = "underscore", [0x46] = "underscore",

View File

@ -119,6 +119,6 @@ activatePackage("LuaLogic");
function llr(){ function llr(){
deleteVariables("$LuaLogic*"); deleteVariables("$LuaLogic*");
resetAllOpCallFunc(); resetAllOpCallFunc();
exec("./server.cs"); exec("./lualogic.cs");
schedule(3000, 0, lualogic_connect, 25000); schedule(3000, 0, lualogic_connect, 25000);
} }

View File

@ -10,10 +10,18 @@ function lualogic_escapelogicfunction(%text){
return %text; return %text;
} }
function lualogic_registergatedefinition(%data) function lualogic_registergatedefinition(%data){
lualogic_registergatedefinition_auto(%data);
}
function lualogic_registergatedefinition_auto(%data)
{ {
if(!isObject(%data)) if(!isObject(%data))
return; return;
if(%data.luaLogic_isRegistered)
return;
%id = %data.getID(); %id = %data.getID();
if((%idx = $LuaLogic::GateDefinitionIDX[%id]) $= "") if((%idx = $LuaLogic::GateDefinitionIDX[%id]) $= "")
@ -39,8 +47,21 @@ function lualogic_registergatedefinition(%data)
} }
$LuaLogic::GateDefintion[%idx] = %def; $LuaLogic::GateDefintion[%idx] = %def;
%data.luaLogic_isRegistered = true;
} }
function lualogic_registerAllGateDefinitions(){
for(%dbidx=0; %dbidx<DatablockGroup.getCount(); %dbidx++){
%db = DatablockGroup.getObject(%dbidx);
if(%db.isLogic && %db.isLogicGate){
lualogic_registergatedefinition_auto(%db);
}
}
}
lualogic_registerAllGateDefinitions();
function lualogic_print(%text) function lualogic_print(%text)
{ {
echo("LuaLogic -> ", %text); echo("LuaLogic -> ", %text);