move "cursor" to char(31), move "all on" to char(144)

(to match what's used in led_marquee)
master
Vanessa Dannenberg 2018-08-15 17:21:34 -04:00
parent dcfac384fc
commit 975741cfe8
1 changed files with 7 additions and 7 deletions

View File

@ -250,6 +250,7 @@ Map of display wires:
]]--
local alnum_chars = {
{ string.char(31), { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } }, -- "cursor" segment
{ " ", { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } }, -- 32
{ "!", { 0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 } },
{ '"', { 0,0,0,0,0,1,0,1,0,0,0,0,0,0,0 } },
@ -346,8 +347,7 @@ local alnum_chars = {
{ "}", { 1,0,0,1,0,0,0,0,1,1,1,0,0,0,0 } },
{ "~", { 0,1,0,0,0,1,1,0,0,1,0,0,0,0,0 } },
{ string.char(127), { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 } }, -- "DEL"
{ string.char(128), { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 } }, -- all-on
{ string.char(129), { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } }, -- "cursor" segment
{ string.char(144), { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 } }, -- all-on
}
local fdir_to_right = {
@ -379,7 +379,7 @@ local display_string = function(pos, channel, string)
local setchan = meta:get_string("channel")
if not string.match(node.name, "nixie_tubes:alnum_") or (setchan ~= nil and setchan ~= "" and setchan ~= channel) then break end
local asc = string.byte(padded_string, i, i)
if node.param2 == fdir and asc > 31 and alnum_chars[asc - 31] then
if node.param2 == fdir and ((asc > 30 and asc < 128) or asc == 144) then
minetest.swap_node(pos2, { name = "nixie_tubes:alnum_"..asc, param2 = node.param2})
end
pos2.x = pos2.x + fdir_to_right[fdir+1][1]
@ -402,15 +402,15 @@ local on_digiline_receive_alnum = function(pos, node, channel, msg)
elseif msg == "del" then
minetest.swap_node(pos, { name = "nixie_tubes:alnum_127", param2 = node.param2})
elseif msg == "allon" then
minetest.swap_node(pos, { name = "nixie_tubes:alnum_128", param2 = node.param2})
minetest.swap_node(pos, { name = "nixie_tubes:alnum_144", param2 = node.param2})
elseif msg == "cursor" then
minetest.swap_node(pos, { name = "nixie_tubes:alnum_129", param2 = node.param2})
minetest.swap_node(pos, { name = "nixie_tubes:alnum_31", param2 = node.param2})
else
display_string(pos, channel, msg)
end
else
local asc = string.byte(msg)
if asc > 31 and alnum_chars[asc - 31] then
if (asc > 30 and asc < 128) or asc == 144 then
minetest.swap_node(pos, { name = "nixie_tubes:alnum_"..asc, param2 = node.param2})
elseif msg == "get" then -- get value as ASCII numerical value
digiline:receptor_send(pos, digiline.rules.default, channel, tonumber(string.match(minetest.get_node(pos).name,"nixie_tubes:alnum_(.+)"))) -- wonderfully horrible string manipulaiton
@ -421,7 +421,7 @@ local on_digiline_receive_alnum = function(pos, node, channel, msg)
elseif msg and type(msg) == "number" then
if msg == 0 then
minetest.swap_node(pos, { name = "nixie_tubes:alnum_32", param2 = node.param2})
elseif msg > 31 and alnum_chars[msg - 31] ~= nil then
elseif (msg > 30 and msg < 128) or msg == 144 then
minetest.swap_node(pos, { name = "nixie_tubes:alnum_"..tostring(msg), param2 = node.param2})
end
end