From 6a62b2bd56b243394f6b23336880a1acb74e2795 Mon Sep 17 00:00:00 2001 From: octacian Date: Wed, 8 Mar 2017 12:48:08 -0800 Subject: [PATCH] Add basic helpers Allows loading, saving, setting, and bringing player to spawnpoint. Includes save and bring code on respawnplayer. --- init.lua | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/init.lua b/init.lua index dae7916..8beb943 100644 --- a/init.lua +++ b/init.lua @@ -10,3 +10,57 @@ function spawnpoint.log(content, log_type) if log_type == nil then log_type = "action" end minetest.log(log_type, "[HUD Plus] "..content) end + +---------------------- +-- HELPER FUNCTIONS -- +---------------------- + +-- [function] Load +function spawnpoint.load() + local res = io.open(path, "r") + if res then + spawnpoint.pos = minetest.string_to_pos(res) + end +end + +-- [function] Save +function spawnpoint.save() + io.open(path, "w"):write(minetest.pos_to_string(spawnpoint.pos)) +end + +-- [function] Set +function spawnpoint.set(pos) + if type(pos) == "string" then + pos = minetest.string_to_pos(pos) + end + + if type(pos) == "table" then + spawnpoint.pos = pos + end +end + +-- [function] Bring +function spawnpoint.bring(player) + if type(player) == "string" then + player = minetest.get_player_by_name(player) + end + + if player then + local pos = spawnpoint.pos + player:setpos({x=pos.x, y=pos.y+0.5, z=pos.z}) + end +end + +------------------- +---- CALLBACKS ---- +------------------- + +spawnpoint.load() + +-- [register] On Shutdown +minetest.register_on_shutdown(spawnpoint.save) + +-- [register] On Respawn Player +minetest.register_on_respawnplayer(function(player) + spawnpoint.bring(player) +end)