Added bookmarks to home_positions mod

master
Ken Bull 2012-09-22 00:00:09 -04:00
parent bf81a3b032
commit 3bf3b7e42d
2 changed files with 54 additions and 0 deletions

View File

@ -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.

View File

@ -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()).."!")