Added bookmarks to home_positions mod
parent
bf81a3b032
commit
3bf3b7e42d
|
@ -3,6 +3,7 @@ minetest_mods
|
|||
|
||||
Various mods for minetest.
|
||||
|
||||
Copyright (C) 2012 Ken Bull <llubnek@gmail.com>
|
||||
For mods without their own README, consider these CC0 or WTFPL.
|
||||
|
||||
|
||||
|
|
|
@ -49,4 +49,57 @@ minetest.register_chatcommand("where", {
|
|||
end,
|
||||
})
|
||||
|
||||
-- bookmark player location
|
||||
minetest.register_chatcommand("mark", {
|
||||
params = "<name>",
|
||||
description = "mark your current location to be recalled later",
|
||||
privs = {},
|
||||
func = function(name, param)
|
||||
local player = minetest.env:get_player_by_name(name)
|
||||
local pos = player:getpos()
|
||||
|
||||
if param == nil or param == "" then
|
||||
minetest.chat_send_player(name, "Missing parameter.")
|
||||
end
|
||||
|
||||
local bookmarks = player_data.get_player_data(name, "bookmarks")
|
||||
if bookmarks == nil then
|
||||
bookmarks = {}
|
||||
end
|
||||
bookmarks[param] = pos
|
||||
|
||||
player_data.set_player_data(name, "bookmarks", bookmarks)
|
||||
minetest.log("action", "Set mark '"..param.."' for player "..name.." to ("..pos.x..", "..pos.y..", "..pos.z..").")
|
||||
minetest.chat_send_player(name, "Saved position ("..pos.x..", "..pos.y..", "..pos.z..") as "..param..".")
|
||||
end,
|
||||
})
|
||||
|
||||
-- go to a marked location
|
||||
minetest.register_chatcommand("go", {
|
||||
params = "[<name>]",
|
||||
description = "goes home or to a marked location",
|
||||
privs = {},
|
||||
func = function(name, param)
|
||||
local player = minetest.env:get_player_by_name(name)
|
||||
local pos = {}
|
||||
if param == nil or param == "" then
|
||||
pos = player_data.get_player_data(name, "home_position")
|
||||
if pos == nil then
|
||||
minetest.chat_send_player(name, "Home position not set.")
|
||||
return
|
||||
end
|
||||
else
|
||||
local bookmarks = player_data.get_player_data(name, "bookmarks")
|
||||
pos = bookmarks[param]
|
||||
if pos == nil then
|
||||
minetest.chat_send_player(name, "Mark '"..param.."' is not set.")
|
||||
return
|
||||
end
|
||||
end
|
||||
minetest.chat_send_player(name, "Teleporting to ("..pos.x..", "..pos.y..", "..pos.z..").")
|
||||
player:setpos(pos)
|
||||
end,
|
||||
})
|
||||
|
||||
|
||||
print("hello from "..minetest.get_current_modname().." at "..minetest.get_modpath(minetest.get_current_modname()).."!")
|
||||
|
|
Loading…
Reference in New Issue