cartographer/commands.lua

46 lines
1.4 KiB
Lua
Raw Normal View History

local map_formspec = ...;
2020-02-16 18:55:07 +01:00
local MAXINT = 2147483647;
-- /map <detail> <scale> -- Displays a regional map around the player
2020-04-11 20:02:12 +02:00
-- (Optional)detail: Specifies the map's detail level. Defaults to the highest
-- available detail.
-- (Optional)scale: Specifies the map's scale. Defaults to 1.
2020-02-16 18:55:07 +01:00
minetest.register_chatcommand("map", {
params = "[<detail>] [<scale>]",
func = function(name, param)
2020-02-16 18:55:07 +01:00
local player = minetest.get_player_by_name(name);
local pos = player:get_pos();
2020-04-11 20:02:12 +02:00
local player_x, player_z = cartographer.to_map_coordinates(nil, pos.x, pos.z);
2020-02-16 18:55:07 +01:00
local detail, scale = param:match("(%d*) (%d*)");
if detail then
detail = tonumber(detail);
2020-04-26 16:21:24 +02:00
else
detail = MAXINT;
end
if scale then
scale = tonumber(scale);
2020-04-26 16:21:24 +02:00
else
scale = 1;
2020-02-16 18:55:07 +01:00
end
cartographer.map_sound("cartographer_open_map", player);
minetest.show_formspec(name, "map", map_formspec.from_coords(math.floor((player_x / scale) + 0.5), math.floor((player_z / scale) + 0.5), 40, 40, detail, scale, true));
2020-02-16 18:55:07 +01:00
end,
})
-- TODO: Remove before release
minetest.register_chatcommand("scan", {
func = function(name)
local player = minetest.get_player_by_name(name);
local pos = player:get_pos();
local b = minetest.get_biome_data(pos).biome;
minetest.chat_send_all(minetest.get_biome_name(b));
end,
})