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.lua43
1 files changed, 43 insertions, 0 deletions
diff --git a/advtrains_trackmap/viewer.lua b/advtrains_trackmap/viewer.lua
new file mode 100644
index 0000000..b7205c8
--- /dev/null
+++ b/advtrains_trackmap/viewer.lua
@@ -0,0 +1,43 @@
+-- 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(npos, conns, connid)
+ if vector.equals(pos, npos) then
+ return {color = "red"}
+ end
+ return nil
+ end
+
+ local gridtbl = tm.generate_grid_map(pos, node_callback)
+ local fslabel = tm.render_grid_formspec(20, 20, gridtbl, {x=pos.x-35, z=pos.z-22}, 70, 44)
+
+ minetest.show_formspec(pname, "advtrains_trackmap:test", 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 pointed_thing.type=="node" then
+ local pos=pointed_thing.under
+ node_left_click(pos, pname)
+ end
+ end
+}) \ No newline at end of file