diff --git a/depends.txt b/depends.txt index 2224f16..fe4349c 100644 --- a/depends.txt +++ b/depends.txt @@ -1,2 +1,3 @@ -default? +default +sethome? creative? diff --git a/home_gui.lua b/home_gui.lua new file mode 100644 index 0000000..e971f38 --- /dev/null +++ b/home_gui.lua @@ -0,0 +1,55 @@ + +-- static spawn position +local statspawn = (minetest.setting_get_pos("static_spawnpoint") or {x = 0, y = 2, z = 0}) +local home_gui = {} + +-- get_formspec +home_gui.get_formspec = function(player) + + local formspec = "size[6,2]" + .. default.gui_bg + .. default.gui_bg_img + .. default.gui_slots + .. "button[0,0;2,0.5;main;Back]" + .. "button_exit[0,1.5;2,0.5;home_gui_set;Set Home]" + .. "button_exit[2,1.5;2,0.5;home_gui_go;Go Home]" + .. "button_exit[4,1.5;2,0.5;home_gui_spawn;Spawn]" + + local home = sethome.get( player:get_player_name() ) + + if home then + formspec = formspec + .."label[2.5,-0.2;Home set to:]" + .."label[2.5,0.4;".. minetest.pos_to_string(vector.round(home)) .. "]" + end + + return formspec +end + +-- add inventory_plus page when player joins +minetest.register_on_joinplayer(function(player) + inventory_plus.register_button(player,"home_gui","Home Pos") +end) + +-- what to do when we press da buttons +minetest.register_on_player_receive_fields(function(player, formname, fields) + if fields.home_gui_set then + sethome.set( player:get_player_name(), player:getpos() ) + end + if fields.home_gui_go then + sethome.go( player:get_player_name() ) + end + if fields.home_gui_spawn then + player:setpos(statspawn) + end +end) + +-- spawn command +minetest.register_chatcommand("spawn", { + description = "Go to Spawn", + privs = {home = true}, + func = function(name) + local player = minetest.get_player_by_name(name) + player:setpos(statspawn) + end, +}) diff --git a/init.lua b/init.lua index b243332..84e53a6 100644 --- a/init.lua +++ b/init.lua @@ -388,3 +388,9 @@ minetest.register_craft({ {'group:wood','group:wood'}, } }) + +-- Add Home GUI +if minetest.get_modpath("sethome") then + print ("sethome found, adding home_gui to inventory plus") + dofile(minetest.get_modpath("inventory_plus") .. "/home_gui.lua") +end