2024-07-27 19:21:56 -06:00

74 lines
1.7 KiB
Lua

--[[
Format:
user = {
name = {
pos = {x = 128, y = 50, z = 256},
idx = 439
}
}
]]
local waypoints = {}
minetest.register_chatcommand("waypoint", {
params = "<name>",
description = [[Creates a waypoint at your position called <NAME>
If the waypoint is already set, move the waypoint.]],
func = function (name, param)
if waypoints[name] == nil then
waypoints[name] = {}
end
local player = minetest.get_player_by_name(name)
if player == nil then return end
if waypoints[name][param] ~= nil then
player:hud_remove(waypoints[name][param].idx)
end
local pos = player:get_pos()
waypoints[name][param] = {}
waypoints[name][param].pos = pos
local idx = player:hud_add({
hud_elem_type = "waypoint",
name = param,
text = "m",
world_pos = pos,
number = 0xFFFFFFFF,
})
waypoints[name][param].idx = idx
end
})
minetest.register_chatcommand("teleportwaypoint", {
params = "<name>",
description = "Teleport to waypoint NAME",
func = function (name, param)
if waypoints[name] == nil then
waypoints[name] = {}
end
if waypoints[name][param] == nil then return end
local player = minetest.get_player_by_name(name)
if player == nil then return end
player:set_pos(waypoints[name][param].pos)
end
})
minetest.register_chatcommand("biome", {
description = "Return the current biome name",
func = function (name)
local player = minetest.get_player_by_name(name)
if player == nil then return end
local pos = player:get_pos()
local name = minetest.get_biome_name(minetest.get_biome_data(pos).biome)
return true, string.format("Current biome name: %s", name)
end
})