add "getindex" command to read the stored message's scroll index position

that is, the string index position of the first displayed character thereof.
This commit is contained in:
Vanessa Dannenberg 2018-08-17 10:46:49 -04:00
parent e8c0fa93ca
commit 3df1e6454b
2 changed files with 3 additions and 0 deletions

@ -51,6 +51,7 @@ The panels also respond to these control messages:
* "scroll_step" will immediately advance the last-displayed message by one character. Omit the above automatic scrolling keywords, and use ONLY this keyword instead if you want to let your LuaController control the scrolling speed.
* "get" will read the one character (as a numerical character value) currently displayed by the master panel (by reading its node name)
* "getstr" will read the last-stored message for the entire lineup/wall (from the master panel's meta), respectively. Note that even if the message has been or is being scrolled, you'll get the original stored message.
* "getindex" will read the scroll index position in that message
If you need vertical scrolling, you will have to handle that yourself (since the size of a screen/wall is not hard-coded).

@ -205,6 +205,8 @@ local on_digiline_receive_string = function(pos, node, channel, msg)
digiline:receptor_send(pos, digiline.rules.default, channel, tonumber(string.match(minetest.get_node(pos).name,"led_marquee:char_(.+)"))) -- wonderfully horrible string manipulaiton
elseif msg == "getstr" then -- get the last stored message
digiline:receptor_send(pos, digiline.rules.default, channel, meta:get_string("last_msg"))
elseif msg == "getindex" then -- get the last stored message
digiline:receptor_send(pos, digiline.rules.default, channel, meta:get_string("index"))
else
led_marquee.set_timer(pos, 0)
meta:set_string("last_msg", msg)