aboutsummaryrefslogtreecommitdiff
path: root/advtrains_trackmap/viewer.lua
diff options
context:
space:
mode:
Diffstat (limited to 'advtrains_trackmap/viewer.lua')
-rw-r--r--advtrains_trackmap/viewer.lua44
1 files changed, 44 insertions, 0 deletions
diff --git a/advtrains_trackmap/viewer.lua b/advtrains_trackmap/viewer.lua
new file mode 100644
index 0000000..d1921d8
--- /dev/null
+++ b/advtrains_trackmap/viewer.lua
@@ -0,0 +1,44 @@
+-- viewer.lua
+-- standalone chatcommand/tool trackmap viewer window
+
+local tm = advtrains.trackmap
+
+local function node_left_click(pos, pname)
+ local node_ok, conns, rail_y=advtrains.get_rail_info_at(pos)
+ if not node_ok then
+ minetest.chat_send_player(pname, "Node is not a track!")
+ return
+ end
+
+ local function node_callback()
+ return nil
+ end
+
+ local gridtbl = tm.generate_grid_map(pos, node_callback)
+ local fslabel = tm.render_grid(gridtbl.grid, gridtbl.min_pos, 100, 100)
+
+ minetest.show_formspec(pname, "advtrains_trackmap:test", "size[20,20]"..fslabel)
+end
+
+
+minetest.register_craftitem("advtrains_trackmap:tool",{
+ description = "Trackmap Tool\nPunch: Show map",
+ groups = {cracky=1}, -- key=name, value=rating; rating=1..3.
+ inventory_image = "at_il_tool.png",
+ wield_image = "at_il_tool.png",
+ stack_max = 1,
+ on_use = function(itemstack, player, pointed_thing)
+ local pname = player:get_player_name()
+ if not pname then
+ return
+ end
+ if not minetest.check_player_privs(pname, {interlocking=true}) then
+ minetest.chat_send_player(pname, "Insufficient privileges to use this!")
+ return
+ end
+ if pointed_thing.type=="node" then
+ local pos=pointed_thing.under
+ node_left_click(pos, pname)
+ end
+ end
+}) \ No newline at end of file