aboutsummaryrefslogtreecommitdiff
path: root/advtrains_trackmap/fsrender.lua
diff options
context:
space:
mode:
Diffstat (limited to 'advtrains_trackmap/fsrender.lua')
-rw-r--r--advtrains_trackmap/fsrender.lua24
1 files changed, 21 insertions, 3 deletions
diff --git a/advtrains_trackmap/fsrender.lua b/advtrains_trackmap/fsrender.lua
index 607f3cd..340b08c 100644
--- a/advtrains_trackmap/fsrender.lua
+++ b/advtrains_trackmap/fsrender.lua
@@ -3,15 +3,32 @@
local tm = advtrains.trackmap
-function tm.render_grid(grid, origin_pos, width, height)
- local s = {"label[0,0;"}
+function tm.render_grid_formspec(formsize_x, formsize_y, gridtbl, origin_pos, width, height)
+ local grid = gridtbl.grid
+ local gcolor = gridtbl.gcolor
+ local s = {
+ "formspec_version[3]",
+ "size["..formsize_x..","..formsize_y.."]",
+ "no_prepend[]",
+ "bgcolor[white;false;white]",
+ "style_type[label;font=mono]",
+ "label[0,0;",
+ minetest.get_color_escape_sequence("black")
+ }
+ local last_color = nil
for z=height-1, 0, -1 do
-- render a row
for x=0,width-1 do
local apos_x = origin_pos.x + x
local apos_z = origin_pos.z + z
- local chr = "░"
+ local chr = " "
if grid[apos_x] and grid[apos_x][apos_z] then
+ local color = gcolor[apos_x][apos_z]
+ if color ~= last_color then
+ -- change the color of the text
+ table.insert(s, minetest.get_color_escape_sequence(color or "black"))
+ last_color = color
+ end
chr = grid[apos_x][apos_z]
end
table.insert(s, chr)
@@ -19,5 +36,6 @@ function tm.render_grid(grid, origin_pos, width, height)
table.insert(s,"\n")
end
table.insert(s, "]")
+ table.insert(s, "style_type[label;font=]") -- reset font style
return table.concat(s)
end \ No newline at end of file