74 lines
1.7 KiB
Lua
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
|
|
})
|