Added bookmarks to home_positions mod
parent
bf81a3b032
commit
3bf3b7e42d
|
@ -3,6 +3,7 @@ minetest_mods
|
||||||
|
|
||||||
Various mods for minetest.
|
Various mods for minetest.
|
||||||
|
|
||||||
|
Copyright (C) 2012 Ken Bull <llubnek@gmail.com>
|
||||||
For mods without their own README, consider these CC0 or WTFPL.
|
For mods without their own README, consider these CC0 or WTFPL.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -49,4 +49,57 @@ minetest.register_chatcommand("where", {
|
||||||
end,
|
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()).."!")
|
print("hello from "..minetest.get_current_modname().." at "..minetest.get_modpath(minetest.get_current_modname()).."!")
|
||||||
|
|
Loading…
Reference in New Issue