forked from Sokomine/yl_speak_up
added color to logfile display for easier reading
This commit is contained in:
parent
258e990d7a
commit
0b2c8ac5ce
@ -86,28 +86,50 @@ end
|
|||||||
|
|
||||||
-- helper function for get_fs_show_log
|
-- helper function for get_fs_show_log
|
||||||
-- text: list of string
|
-- text: list of string
|
||||||
yl_speak_up.show_log_add_line = function(text, last_day, last_who, last_line, same_lines)
|
yl_speak_up.show_log_add_line = function(text, last_day, last_who, last_line, same_lines, entry_type)
|
||||||
|
local line = {}
|
||||||
-- split the line up so that it can actually be read
|
-- split the line up so that it can actually be read
|
||||||
local line_parts = minetest.wrap_text(last_line, 75, true)
|
local multiline = minetest.wrap_text(last_line, 75, true)
|
||||||
for i, p in ipairs(line_parts) do
|
for i, p in ipairs(multiline) do
|
||||||
if(i == 1) then
|
if(i == 1) then
|
||||||
table.insert(text, '#AAAAAA')
|
table.insert(line, '#AAAAAA')
|
||||||
table.insert(text, minetest.formspec_escape(last_day))
|
table.insert(line, minetest.formspec_escape(last_day))
|
||||||
table.insert(text, '#FFFF00')
|
table.insert(line, '#FFFF00')
|
||||||
table.insert(text, minetest.formspec_escape(last_who))
|
table.insert(line, minetest.formspec_escape(last_who))
|
||||||
table.insert(text, '#AAAAAA')
|
table.insert(line, '#AAAAAA')
|
||||||
if(same_lines > 1) then
|
if(same_lines > 1) then
|
||||||
table.insert(text, tostring(same_lines).."x")
|
table.insert(line, tostring(same_lines).."x")
|
||||||
else
|
else
|
||||||
table.insert(text, "")
|
table.insert(line, "")
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
-- do not repeat all the other entries - we just continue text
|
-- do not repeat all the other entries - we just continue text
|
||||||
table.insert(text, '#AAAAAA,,#FFFF00,,#AAAAAA,')
|
table.insert(line, '#AAAAAA,,#FFFF00,,#AAAAAA,')
|
||||||
end
|
end
|
||||||
table.insert(text, '#FFFFFF')
|
if(entry_type and entry_type == "bought") then
|
||||||
table.insert(text, minetest.formspec_escape(p))
|
--table.insert(line, '#FF0000') -- red
|
||||||
|
--table.insert(line, '#00FF00') -- green
|
||||||
|
--table.insert(line, '#0000FF') -- blue
|
||||||
|
--table.insert(line, '#FFFF00') -- yellow
|
||||||
|
--table.insert(line, '#00FFFF') -- cyan
|
||||||
|
--table.insert(line, '#FF00FF') -- magenta
|
||||||
|
table.insert(line, '#00FF00') -- green
|
||||||
|
elseif(entry_type and entry_type == "takes") then
|
||||||
|
table.insert(line, '#FF6600') -- orange
|
||||||
|
elseif(entry_type and entry_type == "adds") then
|
||||||
|
table.insert(line, '#FFCC00') -- orange
|
||||||
|
elseif(entry_type and (entry_type == "buy_if_less" or entry_type == "sell_if_more")) then
|
||||||
|
table.insert(line, '#00FFFF') -- cyan
|
||||||
|
elseif(entry_type and entry_type == "Trade:") then
|
||||||
|
table.insert(line, '#00BBFF') -- darker cyan
|
||||||
|
elseif(entry_type and entry_type == "error:") then
|
||||||
|
table.insert(line, '#FF4444') -- bright red
|
||||||
|
else
|
||||||
|
table.insert(line, '#FFFFFF')
|
||||||
|
end
|
||||||
|
table.insert(line, minetest.formspec_escape(p))
|
||||||
end
|
end
|
||||||
|
table.insert(text, table.concat(line, ','))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@ -134,7 +156,7 @@ yl_speak_up.get_fs_show_log = function(player, log_type)
|
|||||||
'color;text,align=right;'.. -- how many times the entry was repeated
|
'color;text,align=right;'.. -- how many times the entry was repeated
|
||||||
'color;text,align=left]'.. -- actual log file entry
|
'color;text,align=left]'.. -- actual log file entry
|
||||||
'table[0.1,1.0;17.8,9.8;show_log_of_npc;'..
|
'table[0.1,1.0;17.8,9.8;show_log_of_npc;'..
|
||||||
'#FFFFFF,Date,#FFFFFF,Player,#FFFFFF,,#FFFFFF,Log entry,',
|
'#FFFFFF,Date,#FFFFFF,Player,#FFFFFF,,#FFFFFF,',
|
||||||
}
|
}
|
||||||
-- without the time information, some entries (in particular when someone buys from a shpo)
|
-- without the time information, some entries (in particular when someone buys from a shpo)
|
||||||
-- may be the same. Those entries are combined into one when viewing the log.
|
-- may be the same. Those entries are combined into one when viewing the log.
|
||||||
@ -148,6 +170,7 @@ yl_speak_up.get_fs_show_log = function(player, log_type)
|
|||||||
-- we don't want to get too much into detail here for players
|
-- we don't want to get too much into detail here for players
|
||||||
return "size[5,1]label[0,0;Error reading NPC logfile.]"
|
return "size[5,1]label[0,0;Error reading NPC logfile.]"
|
||||||
else
|
else
|
||||||
|
local last_entry_type = ""
|
||||||
for line in file:lines() do
|
for line in file:lines() do
|
||||||
local parts = string.split(line, " ")
|
local parts = string.split(line, " ")
|
||||||
-- suppress the time information as that would be too detailled;
|
-- suppress the time information as that would be too detailled;
|
||||||
@ -158,25 +181,33 @@ yl_speak_up.get_fs_show_log = function(player, log_type)
|
|||||||
-- just count the line
|
-- just count the line
|
||||||
same_lines = same_lines + 1
|
same_lines = same_lines + 1
|
||||||
else
|
else
|
||||||
yl_speak_up.show_log_add_line(text, last_day, last_who, last_line, same_lines)
|
yl_speak_up.show_log_add_line(text, last_day, last_who, last_line, same_lines,
|
||||||
|
last_entry_type)
|
||||||
-- store information about the next line
|
-- store information about the next line
|
||||||
same_lines = 0
|
same_lines = 0
|
||||||
last_line = this_line
|
last_line = this_line
|
||||||
last_day = parts[1]
|
last_day = parts[1]
|
||||||
last_who = parts[3]
|
last_who = parts[3]
|
||||||
|
last_entry_type = parts[4]
|
||||||
end
|
end
|
||||||
count = count + 1
|
count = count + 1
|
||||||
end
|
end
|
||||||
-- cover the last line
|
-- cover the last line
|
||||||
yl_speak_up.show_log_add_line(text, last_day, last_who, last_line, same_lines)
|
yl_speak_up.show_log_add_line(text, last_day, last_who, last_line, same_lines, last_entry_type)
|
||||||
file:close()
|
file:close()
|
||||||
|
|
||||||
table.insert(formspec, table.concat(text, ','))
|
-- reverse the order so that new entries are on top (newer entries are more intresting)
|
||||||
|
local reverse_text = {}
|
||||||
|
for part = #text, 1, -1 do
|
||||||
|
table.insert(reverse_text, text[part])
|
||||||
|
end
|
||||||
|
table.insert(formspec, minetest.formspec_escape('Log entry, newest first, '..
|
||||||
|
tostring(#text)..' entries:')..",")
|
||||||
|
table.insert(formspec, table.concat(reverse_text, ','))
|
||||||
end
|
end
|
||||||
|
|
||||||
-- selected row
|
-- selected row
|
||||||
table.insert(formspec, ";1]")
|
table.insert(formspec, ";1]")
|
||||||
-- TODO: show lines read? (count)
|
|
||||||
return table.concat(formspec, '')
|
return table.concat(formspec, '')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user