added automatic registration for non-builtin gate datablocks
This commit is contained in:
		| @@ -1,83 +1,83 @@ | |||||||
|  |  | ||||||
| textbrick_idxToPrint = textbrick_idxToPrint or { | textbrick_idxToPrint = textbrick_idxToPrint or { | ||||||
| 	[0x00] = "space", | 	[0x00] = "space", | ||||||
| 	 | 	 | ||||||
| 	[0x01] = "A", | 	[0x01] = "A", | ||||||
| 	[0x02] = "B", | 	[0x02] = "B", | ||||||
| 	[0x03] = "C", | 	[0x03] = "C", | ||||||
| 	[0x04] = "D", | 	[0x04] = "D", | ||||||
| 	[0x05] = "E", | 	[0x05] = "E", | ||||||
| 	[0x06] = "F", | 	[0x06] = "F", | ||||||
| 	[0x07] = "G", | 	[0x07] = "G", | ||||||
| 	[0x08] = "H", | 	[0x08] = "H", | ||||||
| 	[0x09] = "I", | 	[0x09] = "I", | ||||||
| 	[0x0A] = "J", | 	[0x0A] = "J", | ||||||
| 	[0x0B] = "K", | 	[0x0B] = "K", | ||||||
| 	[0x0C] = "L", | 	[0x0C] = "L", | ||||||
| 	[0x0D] = "M", | 	[0x0D] = "M", | ||||||
| 	[0x0E] = "N", | 	[0x0E] = "N", | ||||||
| 	[0x0F] = "O", | 	[0x0F] = "O", | ||||||
| 	[0x10] = "P", | 	[0x10] = "P", | ||||||
| 	[0x11] = "Q", | 	[0x11] = "Q", | ||||||
| 	[0x12] = "R", | 	[0x12] = "R", | ||||||
| 	[0x13] = "S", | 	[0x13] = "S", | ||||||
| 	[0x14] = "T", | 	[0x14] = "T", | ||||||
| 	[0x15] = "U", | 	[0x15] = "U", | ||||||
| 	[0x16] = "V", | 	[0x16] = "V", | ||||||
| 	[0x17] = "W", | 	[0x17] = "W", | ||||||
| 	[0x18] = "X", | 	[0x18] = "X", | ||||||
| 	[0x19] = "Y", | 	[0x19] = "Y", | ||||||
| 	[0x1A] = "Z", | 	[0x1A] = "Z", | ||||||
| 	 | 	 | ||||||
| 	[0x1B] = "0", | 	[0x1B] = "0", | ||||||
| 	[0x1C] = "1", | 	[0x1C] = "1", | ||||||
| 	[0x1D] = "2", | 	[0x1D] = "2", | ||||||
| 	[0x1E] = "3", | 	[0x1E] = "3", | ||||||
| 	[0x1F] = "4", | 	[0x1F] = "4", | ||||||
| 	[0x20] = "5", | 	[0x20] = "5", | ||||||
| 	[0x21] = "6", | 	[0x21] = "6", | ||||||
| 	[0x22] = "7", | 	[0x22] = "7", | ||||||
| 	[0x23] = "8", | 	[0x23] = "8", | ||||||
| 	[0x24] = "9", | 	[0x24] = "9", | ||||||
| 	 | 	 | ||||||
| 	[0x25] = "bang", | 	[0x25] = "bang", | ||||||
| 	[0x26] = "at", | 	[0x26] = "at", | ||||||
| 	[0x27] = "pound", | 	[0x27] = "pound", | ||||||
| 	[0x28] = "dollar", | 	[0x28] = "dollar", | ||||||
| 	[0x29] = "percent", | 	[0x29] = "percent", | ||||||
| 	[0x2A] = "caret", | 	[0x2A] = "caret", | ||||||
| 	[0x2B] = "and", | 	[0x2B] = "and", | ||||||
| 	[0x2C] = "asterisk", | 	[0x2C] = "asterisk", | ||||||
| 	[0x2D] = "minus", | 	[0x2D] = "minus", | ||||||
| 	[0x2E] = "equals", | 	[0x2E] = "equals", | ||||||
| 	[0x2F] = "plus", | 	[0x2F] = "plus", | ||||||
| 	[0x30] = "apostrophe", | 	[0x30] = "apostrophe", | ||||||
| 	[0x31] = "less_than", | 	[0x31] = "less_than", | ||||||
| 	[0x32] = "greater_than", | 	[0x32] = "greater_than", | ||||||
| 	[0x33] = "period", | 	[0x33] = "period", | ||||||
| 	[0x34] = "qmark", | 	[0x34] = "qmark", | ||||||
| 	 | 	 | ||||||
| 	[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", | ||||||
| 	[0x47] = "verticalbar", | 	[0x47] = "verticalbar", | ||||||
| } | } | ||||||
|  |  | ||||||
| return function(gate) | return function(gate) | ||||||
| 	gate.tickStarted = 0 | 	gate.tickStarted = 0 | ||||||
| end | end | ||||||
|   | |||||||
| @@ -1,124 +1,124 @@ | |||||||
|  |  | ||||||
| if($Pref::Server::LuaLogic::OPT_TICK_ENABLED $= "") $Pref::Server::LuaLogic::OPT_TICK_ENABLED = true; | if($Pref::Server::LuaLogic::OPT_TICK_ENABLED $= "") $Pref::Server::LuaLogic::OPT_TICK_ENABLED = true; | ||||||
| if($Pref::Server::LuaLogic::OPT_TICK_TIME    $= "") $Pref::Server::LuaLogic::OPT_TICK_TIME    = 0; | if($Pref::Server::LuaLogic::OPT_TICK_TIME    $= "") $Pref::Server::LuaLogic::OPT_TICK_TIME    = 0; | ||||||
| if($Pref::Server::LuaLogic::OPT_FX_UPDATES   $= "") $Pref::Server::LuaLogic::OPT_FX_UPDATES   = true; | if($Pref::Server::LuaLogic::OPT_FX_UPDATES   $= "") $Pref::Server::LuaLogic::OPT_FX_UPDATES   = true; | ||||||
| if($Pref::Server::LuaLogic::OPT_FX_TIME      $= "") $Pref::Server::LuaLogic::OPT_FX_TIME      = 0.03; | if($Pref::Server::LuaLogic::OPT_FX_TIME      $= "") $Pref::Server::LuaLogic::OPT_FX_TIME      = 0.03; | ||||||
|  |  | ||||||
| exec("./utilities.cs"); | exec("./utilities.cs"); | ||||||
| exec("./tcp.cs"); | exec("./tcp.cs"); | ||||||
| exec("./bricks.cs"); | exec("./bricks.cs"); | ||||||
| exec("./brickdata.cs"); | exec("./brickdata.cs"); | ||||||
| exec("./cmds.cs"); | exec("./cmds.cs"); | ||||||
|  |  | ||||||
| function lualogic_loadprintsandcolors() | function lualogic_loadprintsandcolors() | ||||||
| { | { | ||||||
| 	lualogic_definecolor("RED"  , "1 0 0 1"); | 	lualogic_definecolor("RED"  , "1 0 0 1"); | ||||||
| 	lualogic_definecolor("GREEN", "0 1 0 1"); | 	lualogic_definecolor("GREEN", "0 1 0 1"); | ||||||
| 	 | 	 | ||||||
| 	lualogic_defineprint("ARROW"    , "Add-Ons/Print_Logic_Default/prints/arrow.png"); | 	lualogic_defineprint("ARROW"    , "Add-Ons/Print_Logic_Default/prints/arrow.png"); | ||||||
| 	lualogic_defineprint("UPARROW"  , "Add-Ons/Print_Logic_Default/prints/uparrow.png"); | 	lualogic_defineprint("UPARROW"  , "Add-Ons/Print_Logic_Default/prints/uparrow.png"); | ||||||
| 	lualogic_defineprint("DOWNARROW", "Add-Ons/Print_Logic_Default/prints/downarrow.png"); | 	lualogic_defineprint("DOWNARROW", "Add-Ons/Print_Logic_Default/prints/downarrow.png"); | ||||||
| 	 | 	 | ||||||
| 	for(%i = 0; %i < 8; %i++) | 	for(%i = 0; %i < 8; %i++) | ||||||
| 	{ | 	{ | ||||||
| 		%a = (%i >> 2) & 1; | 		%a = (%i >> 2) & 1; | ||||||
| 		%b = (%i >> 1) & 1; | 		%b = (%i >> 1) & 1; | ||||||
| 		%c = (%i >> 0) & 1; | 		%c = (%i >> 0) & 1; | ||||||
| 		lualogic_defineprint("COLOR" @ %a @ %b @ %c, "Add-Ons/Print_Logic_Default/prints/color_" @ %a @ %b @ %c @ ".png"); | 		lualogic_defineprint("COLOR" @ %a @ %b @ %c, "Add-Ons/Print_Logic_Default/prints/color_" @ %a @ %b @ %c @ ".png"); | ||||||
| 	} | 	} | ||||||
| 	 | 	 | ||||||
| 	lualogic_defineprint("space"             , "Add-Ons/Print_Letters_Default/prints/-space.png"           ); | 	lualogic_defineprint("space"             , "Add-Ons/Print_Letters_Default/prints/-space.png"           ); | ||||||
| 	 | 	 | ||||||
| 	lualogic_defineprint("A"                 , "Add-Ons/Print_Letters_Default/prints/A.png"                ); | 	lualogic_defineprint("A"                 , "Add-Ons/Print_Letters_Default/prints/A.png"                ); | ||||||
| 	lualogic_defineprint("B"                 , "Add-Ons/Print_Letters_Default/prints/B.png"                ); | 	lualogic_defineprint("B"                 , "Add-Ons/Print_Letters_Default/prints/B.png"                ); | ||||||
| 	lualogic_defineprint("C"                 , "Add-Ons/Print_Letters_Default/prints/C.png"                ); | 	lualogic_defineprint("C"                 , "Add-Ons/Print_Letters_Default/prints/C.png"                ); | ||||||
| 	lualogic_defineprint("D"                 , "Add-Ons/Print_Letters_Default/prints/D.png"                ); | 	lualogic_defineprint("D"                 , "Add-Ons/Print_Letters_Default/prints/D.png"                ); | ||||||
| 	lualogic_defineprint("E"                 , "Add-Ons/Print_Letters_Default/prints/E.png"                ); | 	lualogic_defineprint("E"                 , "Add-Ons/Print_Letters_Default/prints/E.png"                ); | ||||||
| 	lualogic_defineprint("F"                 , "Add-Ons/Print_Letters_Default/prints/F.png"                ); | 	lualogic_defineprint("F"                 , "Add-Ons/Print_Letters_Default/prints/F.png"                ); | ||||||
| 	lualogic_defineprint("G"                 , "Add-Ons/Print_Letters_Default/prints/G.png"                ); | 	lualogic_defineprint("G"                 , "Add-Ons/Print_Letters_Default/prints/G.png"                ); | ||||||
| 	lualogic_defineprint("H"                 , "Add-Ons/Print_Letters_Default/prints/H.png"                ); | 	lualogic_defineprint("H"                 , "Add-Ons/Print_Letters_Default/prints/H.png"                ); | ||||||
| 	lualogic_defineprint("I"                 , "Add-Ons/Print_Letters_Default/prints/I.png"                ); | 	lualogic_defineprint("I"                 , "Add-Ons/Print_Letters_Default/prints/I.png"                ); | ||||||
| 	lualogic_defineprint("J"                 , "Add-Ons/Print_Letters_Default/prints/J.png"                ); | 	lualogic_defineprint("J"                 , "Add-Ons/Print_Letters_Default/prints/J.png"                ); | ||||||
| 	lualogic_defineprint("K"                 , "Add-Ons/Print_Letters_Default/prints/K.png"                ); | 	lualogic_defineprint("K"                 , "Add-Ons/Print_Letters_Default/prints/K.png"                ); | ||||||
| 	lualogic_defineprint("L"                 , "Add-Ons/Print_Letters_Default/prints/L.png"                ); | 	lualogic_defineprint("L"                 , "Add-Ons/Print_Letters_Default/prints/L.png"                ); | ||||||
| 	lualogic_defineprint("M"                 , "Add-Ons/Print_Letters_Default/prints/M.png"                ); | 	lualogic_defineprint("M"                 , "Add-Ons/Print_Letters_Default/prints/M.png"                ); | ||||||
| 	lualogic_defineprint("N"                 , "Add-Ons/Print_Letters_Default/prints/N.png"                ); | 	lualogic_defineprint("N"                 , "Add-Ons/Print_Letters_Default/prints/N.png"                ); | ||||||
| 	lualogic_defineprint("O"                 , "Add-Ons/Print_Letters_Default/prints/O.png"                ); | 	lualogic_defineprint("O"                 , "Add-Ons/Print_Letters_Default/prints/O.png"                ); | ||||||
| 	lualogic_defineprint("P"                 , "Add-Ons/Print_Letters_Default/prints/P.png"                ); | 	lualogic_defineprint("P"                 , "Add-Ons/Print_Letters_Default/prints/P.png"                ); | ||||||
| 	lualogic_defineprint("Q"                 , "Add-Ons/Print_Letters_Default/prints/Q.png"                ); | 	lualogic_defineprint("Q"                 , "Add-Ons/Print_Letters_Default/prints/Q.png"                ); | ||||||
| 	lualogic_defineprint("R"                 , "Add-Ons/Print_Letters_Default/prints/R.png"                ); | 	lualogic_defineprint("R"                 , "Add-Ons/Print_Letters_Default/prints/R.png"                ); | ||||||
| 	lualogic_defineprint("S"                 , "Add-Ons/Print_Letters_Default/prints/S.png"                ); | 	lualogic_defineprint("S"                 , "Add-Ons/Print_Letters_Default/prints/S.png"                ); | ||||||
| 	lualogic_defineprint("T"                 , "Add-Ons/Print_Letters_Default/prints/T.png"                ); | 	lualogic_defineprint("T"                 , "Add-Ons/Print_Letters_Default/prints/T.png"                ); | ||||||
| 	lualogic_defineprint("U"                 , "Add-Ons/Print_Letters_Default/prints/U.png"                ); | 	lualogic_defineprint("U"                 , "Add-Ons/Print_Letters_Default/prints/U.png"                ); | ||||||
| 	lualogic_defineprint("V"                 , "Add-Ons/Print_Letters_Default/prints/V.png"                ); | 	lualogic_defineprint("V"                 , "Add-Ons/Print_Letters_Default/prints/V.png"                ); | ||||||
| 	lualogic_defineprint("W"                 , "Add-Ons/Print_Letters_Default/prints/W.png"                ); | 	lualogic_defineprint("W"                 , "Add-Ons/Print_Letters_Default/prints/W.png"                ); | ||||||
| 	lualogic_defineprint("X"                 , "Add-Ons/Print_Letters_Default/prints/X.png"                ); | 	lualogic_defineprint("X"                 , "Add-Ons/Print_Letters_Default/prints/X.png"                ); | ||||||
| 	lualogic_defineprint("Y"                 , "Add-Ons/Print_Letters_Default/prints/Y.png"                ); | 	lualogic_defineprint("Y"                 , "Add-Ons/Print_Letters_Default/prints/Y.png"                ); | ||||||
| 	lualogic_defineprint("Z"                 , "Add-Ons/Print_Letters_Default/prints/Z.png"                ); | 	lualogic_defineprint("Z"                 , "Add-Ons/Print_Letters_Default/prints/Z.png"                ); | ||||||
| 	 | 	 | ||||||
| 	lualogic_defineprint("0"                 , "Add-Ons/Print_Letters_Default/prints/0.png"                ); | 	lualogic_defineprint("0"                 , "Add-Ons/Print_Letters_Default/prints/0.png"                ); | ||||||
| 	lualogic_defineprint("1"                 , "Add-Ons/Print_Letters_Default/prints/1.png"                ); | 	lualogic_defineprint("1"                 , "Add-Ons/Print_Letters_Default/prints/1.png"                ); | ||||||
| 	lualogic_defineprint("2"                 , "Add-Ons/Print_Letters_Default/prints/2.png"                ); | 	lualogic_defineprint("2"                 , "Add-Ons/Print_Letters_Default/prints/2.png"                ); | ||||||
| 	lualogic_defineprint("3"                 , "Add-Ons/Print_Letters_Default/prints/3.png"                ); | 	lualogic_defineprint("3"                 , "Add-Ons/Print_Letters_Default/prints/3.png"                ); | ||||||
| 	lualogic_defineprint("4"                 , "Add-Ons/Print_Letters_Default/prints/4.png"                ); | 	lualogic_defineprint("4"                 , "Add-Ons/Print_Letters_Default/prints/4.png"                ); | ||||||
| 	lualogic_defineprint("5"                 , "Add-Ons/Print_Letters_Default/prints/5.png"                ); | 	lualogic_defineprint("5"                 , "Add-Ons/Print_Letters_Default/prints/5.png"                ); | ||||||
| 	lualogic_defineprint("6"                 , "Add-Ons/Print_Letters_Default/prints/6.png"                ); | 	lualogic_defineprint("6"                 , "Add-Ons/Print_Letters_Default/prints/6.png"                ); | ||||||
| 	lualogic_defineprint("7"                 , "Add-Ons/Print_Letters_Default/prints/7.png"                ); | 	lualogic_defineprint("7"                 , "Add-Ons/Print_Letters_Default/prints/7.png"                ); | ||||||
| 	lualogic_defineprint("8"                 , "Add-Ons/Print_Letters_Default/prints/8.png"                ); | 	lualogic_defineprint("8"                 , "Add-Ons/Print_Letters_Default/prints/8.png"                ); | ||||||
| 	lualogic_defineprint("9"                 , "Add-Ons/Print_Letters_Default/prints/9.png"                ); | 	lualogic_defineprint("9"                 , "Add-Ons/Print_Letters_Default/prints/9.png"                ); | ||||||
| 	 | 	 | ||||||
| 	lualogic_defineprint("bang"              , "Add-Ons/Print_Letters_Default/prints/-bang.png"            ); | 	lualogic_defineprint("bang"              , "Add-Ons/Print_Letters_Default/prints/-bang.png"            ); | ||||||
| 	lualogic_defineprint("at"                , "Add-Ons/Print_Letters_Default/prints/-at.png"              ); | 	lualogic_defineprint("at"                , "Add-Ons/Print_Letters_Default/prints/-at.png"              ); | ||||||
| 	lualogic_defineprint("pound"             , "Add-Ons/Print_Letters_Default/prints/-pound.png"           ); | 	lualogic_defineprint("pound"             , "Add-Ons/Print_Letters_Default/prints/-pound.png"           ); | ||||||
| 	lualogic_defineprint("dollar"            , "Add-Ons/Print_Letters_Default/prints/-dollar.png"          ); | 	lualogic_defineprint("dollar"            , "Add-Ons/Print_Letters_Default/prints/-dollar.png"          ); | ||||||
| 	lualogic_defineprint("percent"           , "Add-Ons/Print_Letters_Default/prints/-percent.png"         ); | 	lualogic_defineprint("percent"           , "Add-Ons/Print_Letters_Default/prints/-percent.png"         ); | ||||||
| 	lualogic_defineprint("caret"             , "Add-Ons/Print_Letters_Default/prints/-caret.png"           ); | 	lualogic_defineprint("caret"             , "Add-Ons/Print_Letters_Default/prints/-caret.png"           ); | ||||||
| 	lualogic_defineprint("and"               , "Add-Ons/Print_Letters_Default/prints/-and.png"             ); | 	lualogic_defineprint("and"               , "Add-Ons/Print_Letters_Default/prints/-and.png"             ); | ||||||
| 	lualogic_defineprint("asterisk"          , "Add-Ons/Print_Letters_Default/prints/-asterisk.png"        ); | 	lualogic_defineprint("asterisk"          , "Add-Ons/Print_Letters_Default/prints/-asterisk.png"        ); | ||||||
| 	lualogic_defineprint("minus"             , "Add-Ons/Print_Letters_Default/prints/-minus.png"           ); | 	lualogic_defineprint("minus"             , "Add-Ons/Print_Letters_Default/prints/-minus.png"           ); | ||||||
| 	lualogic_defineprint("equals"            , "Add-Ons/Print_Letters_Default/prints/-equals.png"          ); | 	lualogic_defineprint("equals"            , "Add-Ons/Print_Letters_Default/prints/-equals.png"          ); | ||||||
| 	lualogic_defineprint("plus"              , "Add-Ons/Print_Letters_Default/prints/-plus.png"            ); | 	lualogic_defineprint("plus"              , "Add-Ons/Print_Letters_Default/prints/-plus.png"            ); | ||||||
| 	lualogic_defineprint("apostrophe"        , "Add-Ons/Print_Letters_Default/prints/-apostrophe.png"      ); | 	lualogic_defineprint("apostrophe"        , "Add-Ons/Print_Letters_Default/prints/-apostrophe.png"      ); | ||||||
| 	lualogic_defineprint("less_than"         , "Add-Ons/Print_Letters_Default/prints/-less_than.png"       ); | 	lualogic_defineprint("less_than"         , "Add-Ons/Print_Letters_Default/prints/-less_than.png"       ); | ||||||
| 	lualogic_defineprint("greater_than"      , "Add-Ons/Print_Letters_Default/prints/-greater_than.png"    ); | 	lualogic_defineprint("greater_than"      , "Add-Ons/Print_Letters_Default/prints/-greater_than.png"    ); | ||||||
| 	lualogic_defineprint("period"            , "Add-Ons/Print_Letters_Default/prints/-period.png"          ); | 	lualogic_defineprint("period"            , "Add-Ons/Print_Letters_Default/prints/-period.png"          ); | ||||||
| 	lualogic_defineprint("qmark"             , "Add-Ons/Print_Letters_Default/prints/-qmark.png"           ); | 	lualogic_defineprint("qmark"             , "Add-Ons/Print_Letters_Default/prints/-qmark.png"           ); | ||||||
| 	 | 	 | ||||||
| 	lualogic_defineprint("apostrophe2"       , "Add-Ons/Print_Letters_Extra/prints/-apostrophe2.png"       ); | 	lualogic_defineprint("apostrophe2"       , "Add-Ons/Print_Letters_Extra/prints/-apostrophe2.png"       ); | ||||||
| 	lualogic_defineprint("colon"             , "Add-Ons/Print_Letters_Extra/prints/-colon.png"             ); | 	lualogic_defineprint("colon"             , "Add-Ons/Print_Letters_Extra/prints/-colon.png"             ); | ||||||
| 	lualogic_defineprint("comma"             , "Add-Ons/Print_Letters_Extra/prints/-comma.png"             ); | 	lualogic_defineprint("comma"             , "Add-Ons/Print_Letters_Extra/prints/-comma.png"             ); | ||||||
| 	lualogic_defineprint("curlybracketleft"  , "Add-Ons/Print_Letters_Extra/prints/-curlybracketleft.png"  ); | 	lualogic_defineprint("curlybracketleft"  , "Add-Ons/Print_Letters_Extra/prints/-curlybracketleft.png"  ); | ||||||
| 	lualogic_defineprint("curlybracketright" , "Add-Ons/Print_Letters_Extra/prints/-curlybracketright.png" ); | 	lualogic_defineprint("curlybracketright" , "Add-Ons/Print_Letters_Extra/prints/-curlybracketright.png" ); | ||||||
| 	lualogic_defineprint("currencysign"      , "Add-Ons/Print_Letters_Extra/prints/-currencysign.png"      ); | 	lualogic_defineprint("currencysign"      , "Add-Ons/Print_Letters_Extra/prints/-currencysign.png"      ); | ||||||
| 	lualogic_defineprint("euro"              , "Add-Ons/Print_Letters_Extra/prints/-euro.png"              ); | 	lualogic_defineprint("euro"              , "Add-Ons/Print_Letters_Extra/prints/-euro.png"              ); | ||||||
| 	lualogic_defineprint("onehalf"           , "Add-Ons/Print_Letters_Extra/prints/-onehalf.png"           ); | 	lualogic_defineprint("onehalf"           , "Add-Ons/Print_Letters_Extra/prints/-onehalf.png"           ); | ||||||
| 	lualogic_defineprint("poundsymbol"       , "Add-Ons/Print_Letters_Extra/prints/-poundsymbol.png"       ); | 	lualogic_defineprint("poundsymbol"       , "Add-Ons/Print_Letters_Extra/prints/-poundsymbol.png"       ); | ||||||
| 	lualogic_defineprint("roundbracketleft"  , "Add-Ons/Print_Letters_Extra/prints/-roundbracketleft.png"  ); | 	lualogic_defineprint("roundbracketleft"  , "Add-Ons/Print_Letters_Extra/prints/-roundbracketleft.png"  ); | ||||||
| 	lualogic_defineprint("roundbracketright" , "Add-Ons/Print_Letters_Extra/prints/-roundbracketright.png" ); | 	lualogic_defineprint("roundbracketright" , "Add-Ons/Print_Letters_Extra/prints/-roundbracketright.png" ); | ||||||
| 	lualogic_defineprint("slashleft"         , "Add-Ons/Print_Letters_Extra/prints/-slashleft.png"         ); | 	lualogic_defineprint("slashleft"         , "Add-Ons/Print_Letters_Extra/prints/-slashleft.png"         ); | ||||||
| 	lualogic_defineprint("slashright"        , "Add-Ons/Print_Letters_Extra/prints/-slashright.png"        ); | 	lualogic_defineprint("slashright"        , "Add-Ons/Print_Letters_Extra/prints/-slashright.png"        ); | ||||||
| 	lualogic_defineprint("squarebracketleft" , "Add-Ons/Print_Letters_Extra/prints/-squarebracketleft.png" ); | 	lualogic_defineprint("squarebracketleft" , "Add-Ons/Print_Letters_Extra/prints/-squarebracketleft.png" ); | ||||||
| 	lualogic_defineprint("squarebracketright", "Add-Ons/Print_Letters_Extra/prints/-squarebracketright.png"); | 	lualogic_defineprint("squarebracketright", "Add-Ons/Print_Letters_Extra/prints/-squarebracketright.png"); | ||||||
| 	lualogic_defineprint("tilde"             , "Add-Ons/Print_Letters_Extra/prints/-tilde.png"             ); | 	lualogic_defineprint("tilde"             , "Add-Ons/Print_Letters_Extra/prints/-tilde.png"             ); | ||||||
| 	lualogic_defineprint("umlaut"            , "Add-Ons/Print_Letters_Extra/prints/-umlaut.png"            ); | 	lualogic_defineprint("umlaut"            , "Add-Ons/Print_Letters_Extra/prints/-umlaut.png"            ); | ||||||
| 	lualogic_defineprint("underscore"        , "Add-Ons/Print_Letters_Extra/prints/-underscore.png"        ); | 	lualogic_defineprint("underscore"        , "Add-Ons/Print_Letters_Extra/prints/-underscore.png"        ); | ||||||
| 	lualogic_defineprint("verticalbar"       , "Add-Ons/Print_Letters_Extra/prints/-verticalbar.png"       ); | 	lualogic_defineprint("verticalbar"       , "Add-Ons/Print_Letters_Extra/prints/-verticalbar.png"       ); | ||||||
| } | } | ||||||
| schedule(0, 0, "lualogic_loadprintsandcolors"); | schedule(0, 0, "lualogic_loadprintsandcolors"); | ||||||
|  |  | ||||||
| package LuaLogic | package LuaLogic | ||||||
| { | { | ||||||
| 	function onServerDestroyed() | 	function onServerDestroyed() | ||||||
| 	{ | 	{ | ||||||
| 		deleteVariables("$LuaLogic*"); | 		deleteVariables("$LuaLogic*"); | ||||||
| 		parent::onServerDestroyed(); | 		parent::onServerDestroyed(); | ||||||
| 	} | 	} | ||||||
| }; | }; | ||||||
| activatePackage("LuaLogic"); | 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); | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,221 +1,242 @@ | |||||||
|  |  | ||||||
| function lualogic_escapelogicfunction(%text){ | function lualogic_escapelogicfunction(%text){ | ||||||
| 	%text = strReplace(%text, "\\", "\\/"); | 	%text = strReplace(%text, "\\", "\\/"); | ||||||
| 	 | 	 | ||||||
| 	%text = strReplace(%text, "\r", "\\r"); | 	%text = strReplace(%text, "\r", "\\r"); | ||||||
| 	%text = strReplace(%text, "\n", "\\n"); | 	%text = strReplace(%text, "\n", "\\n"); | ||||||
| 	%text = strReplace(%text, "\t", "\\t"); | 	%text = strReplace(%text, "\t", "\\t"); | ||||||
| 	%text = strReplace(%text, ";" , "\\:"); | 	%text = strReplace(%text, ";" , "\\:"); | ||||||
| 	 | 	 | ||||||
| 	return %text; | 	return %text; | ||||||
| } | } | ||||||
|  |  | ||||||
| function lualogic_registergatedefinition(%data) | function lualogic_registergatedefinition(%data){ | ||||||
| { | 	lualogic_registergatedefinition_auto(%data); | ||||||
| 	if(!isObject(%data)) | } | ||||||
| 		return; |  | ||||||
| 	%id = %data.getID(); | function lualogic_registergatedefinition_auto(%data) | ||||||
| 	 | { | ||||||
| 	if((%idx = $LuaLogic::GateDefinitionIDX[%id]) $= "") | 	if(!isObject(%data)) | ||||||
| 	{ | 		return; | ||||||
| 		%idx = $LuaLogic::NumGateDefintions+0; | 	 | ||||||
| 		$LuaLogic::GateDefinitionIDX[%id] = %idx; | 	if(%data.luaLogic_isRegistered) | ||||||
| 		$LuaLogic::NumGateDefintions++; | 		return; | ||||||
| 	} | 	 | ||||||
|  | 	%id = %data.getID(); | ||||||
| 	%def = %id @ ";" @ | 	 | ||||||
| 		%data.logicUIName @ ";" @ | 	if((%idx = $LuaLogic::GateDefinitionIDX[%id]) $= "") | ||||||
| 		%data.logicUIDesc @ ";" @ | 	{ | ||||||
| 		lualogic_escapelogicfunction(%data.logicInit) @ ";" @ | 		%idx = $LuaLogic::NumGateDefintions+0; | ||||||
| 		lualogic_escapelogicfunction(%data.logicUpdate) @ ";" @ | 		$LuaLogic::GateDefinitionIDX[%id] = %idx; | ||||||
| 		lualogic_escapelogicfunction(%data.logicInput) @ ";" @ | 		$LuaLogic::NumGateDefintions++; | ||||||
| 		(%ports = %data.numLogicPorts) | 	} | ||||||
| 	; |  | ||||||
| 	 | 	%def = %id @ ";" @ | ||||||
| 	for(%i = 0; %i < %ports; %i++) | 		%data.logicUIName @ ";" @ | ||||||
| 	{ | 		%data.logicUIDesc @ ";" @ | ||||||
| 		%def = %def @";"@ %data.logicPortType[%i] @";"@ %data.logicPortPos[%i] @";"@ %data.logicPortDir[%i] | 		lualogic_escapelogicfunction(%data.logicInit) @ ";" @ | ||||||
| 				@";"@ (%data.logicPortCauseUpdate[%i] == true) @";"@ %data.logicPortUIName[%i]; | 		lualogic_escapelogicfunction(%data.logicUpdate) @ ";" @ | ||||||
| 	} | 		lualogic_escapelogicfunction(%data.logicInput) @ ";" @ | ||||||
|  | 		(%ports = %data.numLogicPorts) | ||||||
| 	$LuaLogic::GateDefintion[%idx] = %def; | 	; | ||||||
| } | 	 | ||||||
|  | 	for(%i = 0; %i < %ports; %i++) | ||||||
| function lualogic_print(%text) | 	{ | ||||||
| { | 		%def = %def @";"@ %data.logicPortType[%i] @";"@ %data.logicPortPos[%i] @";"@ %data.logicPortDir[%i] | ||||||
| 	echo("LuaLogic -> ", %text); | 				@";"@ (%data.logicPortCauseUpdate[%i] == true) @";"@ %data.logicPortUIName[%i]; | ||||||
| } | 	} | ||||||
|  |  | ||||||
| function lualogic_roundpos(%pos) | 	$LuaLogic::GateDefintion[%idx] = %def; | ||||||
| { | 	 | ||||||
| 	return mFloor(getWord(%pos, 0)*4)/4 SPC mFloor(getWord(%pos, 1)*4)/4 SPC mFloor(getWord(%pos, 2)*10)/10; | 	%data.luaLogic_isRegistered = true; | ||||||
| } | } | ||||||
|  |  | ||||||
| function lualogic_roundstudpos(%pos) | function lualogic_registerAllGateDefinitions(){ | ||||||
| { | 	for(%dbidx=0; %dbidx<DatablockGroup.getCount(); %dbidx++){ | ||||||
| 	return mFloor(getWord(%pos, 0)*2)/2 SPC mFloor(getWord(%pos, 1)*2)/2 SPC mFloor(getWord(%pos, 2)*5)/5; | 		%db = DatablockGroup.getObject(%dbidx); | ||||||
| } | 		if(%db.isLogic && %db.isLogicGate){ | ||||||
|  | 			lualogic_registergatedefinition_auto(%db); | ||||||
| function lualogic_pos(%pos) | 		} | ||||||
| { | 	} | ||||||
| 	%pos = lualogic_roundpos(%pos); | } | ||||||
| 	return getWord(%pos, 0)/0.25 SPC getWord(%pos, 1)/0.25 SPC getWord(%pos, 2)/0.1; |  | ||||||
| } | lualogic_registerAllGateDefinitions(); | ||||||
|  |  | ||||||
| function lualogic_studpos(%pos) | function lualogic_print(%text) | ||||||
| { | { | ||||||
| 	%pos = lualogic_roundstudpos(%pos); | 	echo("LuaLogic -> ", %text); | ||||||
| 	return getWord(%pos, 0)/0.5*2 + 1 SPC getWord(%pos, 1)/0.5*2 + 1 SPC getWord(%pos, 2)/0.2*2; | } | ||||||
| } |  | ||||||
|  | function lualogic_roundpos(%pos) | ||||||
| function lualogic_postobrick(%pos) | { | ||||||
| { | 	return mFloor(getWord(%pos, 0)*4)/4 SPC mFloor(getWord(%pos, 1)*4)/4 SPC mFloor(getWord(%pos, 2)*10)/10; | ||||||
| 	return getWord(%pos, 0)*0.25 SPC getWord(%pos, 1)*0.25 SPC getWord(%pos, 2)*0.1; | } | ||||||
| } |  | ||||||
|  | function lualogic_roundstudpos(%pos) | ||||||
| function lualogic_connect(%port) | { | ||||||
| { | 	return mFloor(getWord(%pos, 0)*2)/2 SPC mFloor(getWord(%pos, 1)*2)/2 SPC mFloor(getWord(%pos, 2)*5)/5; | ||||||
| 	if(isObject(LuaLogicTCP)) | } | ||||||
| 		LuaLogicTCP.delete(); |  | ||||||
| 	%tcp = new TCPObject(LuaLogicTCP); | function lualogic_pos(%pos) | ||||||
| 	%tcp.connect("127.0.0.1:" @ %port); | { | ||||||
| } | 	%pos = lualogic_roundpos(%pos); | ||||||
|  | 	return getWord(%pos, 0)/0.25 SPC getWord(%pos, 1)/0.25 SPC getWord(%pos, 2)/0.1; | ||||||
| function lualogic_send(%data) | } | ||||||
| { |  | ||||||
| 	if(isObject(LuaLogicTCP) && LuaLogicTCP.isConnected) | function lualogic_studpos(%pos) | ||||||
| 	{ | { | ||||||
| 		while(strpos(%data, ";;") != -1) | 	%pos = lualogic_roundstudpos(%pos); | ||||||
| 			%data = strReplace(%data, ";;", "; ;"); | 	return getWord(%pos, 0)/0.5*2 + 1 SPC getWord(%pos, 1)/0.5*2 + 1 SPC getWord(%pos, 2)/0.2*2; | ||||||
| 		 | } | ||||||
| 		if(strlen(LuaLogicTCP.data) + strlen(%data) >= 1024) |  | ||||||
| 			LuaLogicTCP.sendData(); | function lualogic_postobrick(%pos) | ||||||
| 		 | { | ||||||
| 		if(LuaLogicTCP.data $= "") | 	return getWord(%pos, 0)*0.25 SPC getWord(%pos, 1)*0.25 SPC getWord(%pos, 2)*0.1; | ||||||
| 			LuaLogicTCP.data = %data; | } | ||||||
| 		else |  | ||||||
| 			LuaLogicTCP.data = LuaLogicTCP.data @ ";" @ %data; | function lualogic_connect(%port) | ||||||
| 	} | { | ||||||
| } | 	if(isObject(LuaLogicTCP)) | ||||||
|  | 		LuaLogicTCP.delete(); | ||||||
| function lualogic_sendgatedefinitions() | 	%tcp = new TCPObject(LuaLogicTCP); | ||||||
| { | 	%tcp.connect("127.0.0.1:" @ %port); | ||||||
| 	for(%i = 0; %i < $LuaLogic::NumGateDefintions; %i++) | } | ||||||
| 		lualogic_send("GD;" @ $LuaLogic::GateDefintion[%i]); |  | ||||||
| } | function lualogic_send(%data) | ||||||
|  | { | ||||||
| function lualogic_sendoptions() | 	if(isObject(LuaLogicTCP) && LuaLogicTCP.isConnected) | ||||||
| { | 	{ | ||||||
| 	lualogic_send("OPT;TICK_ENABLED;"	@ $Pref::Server::LuaLogic::OPT_TICK_ENABLED); | 		while(strpos(%data, ";;") != -1) | ||||||
| 	lualogic_send("OPT;TICK_TIME;"		@ $Pref::Server::LuaLogic::OPT_TICK_TIME); | 			%data = strReplace(%data, ";;", "; ;"); | ||||||
| 	lualogic_send("OPT;FX_UPDATES;"		@ $Pref::Server::LuaLogic::OPT_FX_UPDATES); | 		 | ||||||
| 	lualogic_send("OPT;FX_TIME;"		@ $Pref::Server::LuaLogic::OPT_FX_TIME); | 		if(strlen(LuaLogicTCP.data) + strlen(%data) >= 1024) | ||||||
| } | 			LuaLogicTCP.sendData(); | ||||||
|  | 		 | ||||||
| function lualogic_sendinput(%gate, %argc, %arg0, %arg1, %arg2, %arg3, %arg4, %arg5, %arg6, %arg7, %arg8, %arg9, %arg10, %arg11, %arg12, %arg13, %arg14, %arg15) | 		if(LuaLogicTCP.data $= "") | ||||||
| { | 			LuaLogicTCP.data = %data; | ||||||
| 	%args = %arg0; | 		else | ||||||
| 	for(%i = 1; %i < %argc; %i++) | 			LuaLogicTCP.data = LuaLogicTCP.data @ ";" @ %data; | ||||||
| 		%args = %args @ ";" @ %arg[%i]; | 	} | ||||||
| 	 | } | ||||||
| 	if(%argc > 0) |  | ||||||
| 		lualogic_send("IN;" @ %gate.getID() @ ";" @ %argc @ ";" @ %args); | function lualogic_sendgatedefinitions() | ||||||
| 	else | { | ||||||
| 		lualogic_send("IN;" @ %gate.getID() @ ";" @ %argc); | 	for(%i = 0; %i < $LuaLogic::NumGateDefintions; %i++) | ||||||
| } | 		lualogic_send("GD;" @ $LuaLogic::GateDefintion[%i]); | ||||||
|  | } | ||||||
| function lualogic_ss(%obj, %state) |  | ||||||
| { | function lualogic_sendoptions() | ||||||
| 	lualogic_send("SG;" @ %obj @ ";" @ (%state == true)); | { | ||||||
| } | 	lualogic_send("OPT;TICK_ENABLED;"	@ $Pref::Server::LuaLogic::OPT_TICK_ENABLED); | ||||||
|  | 	lualogic_send("OPT;TICK_TIME;"		@ $Pref::Server::LuaLogic::OPT_TICK_TIME); | ||||||
| function lualogic_definecolor(%color, %rgb, %allowTransparency) | 	lualogic_send("OPT;FX_UPDATES;"		@ $Pref::Server::LuaLogic::OPT_FX_UPDATES); | ||||||
| { | 	lualogic_send("OPT;FX_TIME;"		@ $Pref::Server::LuaLogic::OPT_FX_TIME); | ||||||
| 	%r = getWord(%rgb, 0); | } | ||||||
| 	%g = getWord(%rgb, 1); |  | ||||||
| 	%b = getWord(%rgb, 2); | function lualogic_sendinput(%gate, %argc, %arg0, %arg1, %arg2, %arg3, %arg4, %arg5, %arg6, %arg7, %arg8, %arg9, %arg10, %arg11, %arg12, %arg13, %arg14, %arg15) | ||||||
|  | { | ||||||
| 	%alpha = %allowTransparency ? 0.001 : 1; | 	%args = %arg0; | ||||||
|  | 	for(%i = 1; %i < %argc; %i++) | ||||||
| 	%bestDist = 9e9; | 		%args = %args @ ";" @ %arg[%i]; | ||||||
|  | 	 | ||||||
| 	for(%i = 0; %i < 64; %i++) | 	if(%argc > 0) | ||||||
| 	{ | 		lualogic_send("IN;" @ %gate.getID() @ ";" @ %argc @ ";" @ %args); | ||||||
| 		%crgba = getColorIDTable(%i); | 	else | ||||||
| 		if(getWord(%crgba, 3) >= %alpha) | 		lualogic_send("IN;" @ %gate.getID() @ ";" @ %argc); | ||||||
| 		{ | } | ||||||
| 			%dr = getWord(%crgba, 0) - %r; |  | ||||||
| 			%dg = getWord(%crgba, 1) - %g; | function lualogic_ss(%obj, %state) | ||||||
| 			%db = getWord(%crgba, 2) - %b; | { | ||||||
| 			%dist = %dr*%dr + %dg*%dg + %db*%db; | 	lualogic_send("SG;" @ %obj @ ";" @ (%state == true)); | ||||||
|  | } | ||||||
| 			if(%dist < %bestDist) |  | ||||||
| 			{ | function lualogic_definecolor(%color, %rgb, %allowTransparency) | ||||||
| 				%bestDist = %dist; | { | ||||||
| 				%bestColor = %i; | 	%r = getWord(%rgb, 0); | ||||||
| 			} | 	%g = getWord(%rgb, 1); | ||||||
| 		} | 	%b = getWord(%rgb, 2); | ||||||
| 	} |  | ||||||
|  | 	%alpha = %allowTransparency ? 0.001 : 1; | ||||||
| 	$LuaLogic::Color[%color] = %bestColor; |  | ||||||
| 	return %bestColor; | 	%bestDist = 9e9; | ||||||
| } |  | ||||||
|  | 	for(%i = 0; %i < 64; %i++) | ||||||
| function lualogic_iscolor(%color) | 	{ | ||||||
| { | 		%crgba = getColorIDTable(%i); | ||||||
| 	return $LuaLogic::Color[%color] !$= ""; | 		if(getWord(%crgba, 3) >= %alpha) | ||||||
| } | 		{ | ||||||
|  | 			%dr = getWord(%crgba, 0) - %r; | ||||||
| function lualogic_getcolor(%color) | 			%dg = getWord(%crgba, 1) - %g; | ||||||
| { | 			%db = getWord(%crgba, 2) - %b; | ||||||
| 	if($LuaLogic::Color[%color] !$= "") | 			%dist = %dr*%dr + %dg*%dg + %db*%db; | ||||||
| 		return $LuaLogic::Color[%color]; |  | ||||||
| 	return 0; | 			if(%dist < %bestDist) | ||||||
| } | 			{ | ||||||
|  | 				%bestDist = %dist; | ||||||
| function lualogic_defineprint(%print, %file) | 				%bestColor = %i; | ||||||
| { | 			} | ||||||
| 	%count = getNumPrintTextures(); | 		} | ||||||
| 	for(%i = 0; %i < %count; %i++) | 	} | ||||||
| 	{ |  | ||||||
| 		if(getPrintTexture(%i) $= %file) | 	$LuaLogic::Color[%color] = %bestColor; | ||||||
| 		{ | 	return %bestColor; | ||||||
| 			$LuaLogic::Print[%print] = %i; | } | ||||||
| 			return %i; |  | ||||||
| 		} | function lualogic_iscolor(%color) | ||||||
| 	} | { | ||||||
|  | 	return $LuaLogic::Color[%color] !$= ""; | ||||||
| 	return ""; | } | ||||||
| } |  | ||||||
|  | function lualogic_getcolor(%color) | ||||||
| function lualogic_isprint(%print) | { | ||||||
| { | 	if($LuaLogic::Color[%color] !$= "") | ||||||
| 	return $LuaLogic::Print[%print] !$= ""; | 		return $LuaLogic::Color[%color]; | ||||||
| } | 	return 0; | ||||||
|  | } | ||||||
| function lualogic_getprint(%print) |  | ||||||
| { | function lualogic_defineprint(%print, %file) | ||||||
| 	if($LuaLogic::Print[%print] !$= "") | { | ||||||
| 		return $LuaLogic::Print[%print]; | 	%count = getNumPrintTextures(); | ||||||
| 	return 0; | 	for(%i = 0; %i < %count; %i++) | ||||||
| } | 	{ | ||||||
|  | 		if(getPrintTexture(%i) $= %file) | ||||||
| function lualogic_readfile(%filename){ | 		{ | ||||||
| 	%filestr=""; | 			$LuaLogic::Print[%print] = %i; | ||||||
| 	 | 			return %i; | ||||||
| 	%file=new FileObject(); | 		} | ||||||
| 	%success=%file.openForRead(%filename); | 	} | ||||||
| 	 |  | ||||||
| 	if(%success){ | 	return ""; | ||||||
| 		while(!%file.isEOF()){ | } | ||||||
| 			%line = %file.readLine(); |  | ||||||
| 			%filestr = %filestr @ %line @ "\n"; | function lualogic_isprint(%print) | ||||||
| 		} | { | ||||||
| 	}else{ | 	return $LuaLogic::Print[%print] !$= ""; | ||||||
| 		echo("LuaLogic: Failed to read file \"" @ %filename @ "\""); | } | ||||||
| 	} |  | ||||||
| 	%file.close(); | function lualogic_getprint(%print) | ||||||
| 	%file.delete(); | { | ||||||
| 	 | 	if($LuaLogic::Print[%print] !$= "") | ||||||
| 	return %filestr; | 		return $LuaLogic::Print[%print]; | ||||||
| } | 	return 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function lualogic_readfile(%filename){ | ||||||
|  | 	%filestr=""; | ||||||
|  | 	 | ||||||
|  | 	%file=new FileObject(); | ||||||
|  | 	%success=%file.openForRead(%filename); | ||||||
|  | 	 | ||||||
|  | 	if(%success){ | ||||||
|  | 		while(!%file.isEOF()){ | ||||||
|  | 			%line = %file.readLine(); | ||||||
|  | 			%filestr = %filestr @ %line @ "\n"; | ||||||
|  | 		} | ||||||
|  | 	}else{ | ||||||
|  | 		echo("LuaLogic: Failed to read file \"" @ %filename @ "\""); | ||||||
|  | 	} | ||||||
|  | 	%file.close(); | ||||||
|  | 	%file.delete(); | ||||||
|  | 	 | ||||||
|  | 	return %filestr; | ||||||
|  | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Redo
					Redo