From 95a5586e0fe196e2291acaf128b8d1b4f8a32510 Mon Sep 17 00:00:00 2001 From: Singularis Date: Mon, 21 Apr 2025 07:21:53 +0200 Subject: [advtrains] přechod na Advtrains 2.5.0 (první pokus) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - [ch_core/lib] drobná oprava - [advtrains_attachment_offset_patch] použití initial_properties --- advtrains_trackmap/fsrender.lua | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 advtrains_trackmap/fsrender.lua (limited to 'advtrains_trackmap/fsrender.lua') diff --git a/advtrains_trackmap/fsrender.lua b/advtrains_trackmap/fsrender.lua new file mode 100644 index 0000000..340b08c --- /dev/null +++ b/advtrains_trackmap/fsrender.lua @@ -0,0 +1,41 @@ +-- fsrender.lua +-- Rendering of a grid of characters into a formspec + +local tm = advtrains.trackmap + +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 = " " + 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) + end + 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 -- cgit v1.2.3