From 6e8a826e597fcbf6354edc4664d94c78f0482aa3 Mon Sep 17 00:00:00 2001 From: chmodsayshello Date: Mon, 25 Apr 2022 14:04:37 +0000 Subject: [PATCH] change mcl_spawn to support respawn anchor respawning --- mods/PLAYER/mcl_spawn/init.lua | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/mods/PLAYER/mcl_spawn/init.lua b/mods/PLAYER/mcl_spawn/init.lua index 113a4d27f..4068893cb 100644 --- a/mods/PLAYER/mcl_spawn/init.lua +++ b/mods/PLAYER/mcl_spawn/init.lua @@ -452,10 +452,33 @@ function mcl_spawn.get_player_spawn_pos(player) if bgroup ~= 1 and bgroup ~= 2 then -- Bed is destroyed: if player and player:is_player() then - player:get_meta():set_string("mcl_beds:spawn", "") + + checkblock = minetest.string_to_pos(player:get_meta():get_string("mcl_beds:spawn")) + + if minetest.get_node(checkblock).name == "mcl_beds:respawn_anchor_charged_1" then + minetest.set_node(checkblock, {name="mcl_beds:respawn_anchor"}) + player:set_pos(checkblock) + else + if minetest.get_node(checkblock).name == "mcl_beds:respawn_anchor_charged_2" then + minetest.set_node(checkblock, {name="mcl_beds:respawn_anchor_charged_1"}) + player:set_pos(checkblock) + else + if minetest.get_node(checkblock).name == "mcl_beds:respawn_anchor_charged_3" then + minetest.set_node(checkblock, {name="mcl_beds:respawn_anchor_charged_2"}) + player:set_pos(checkblock) + else + if minetest.get_node(checkblock).name == "mcl_beds:respawn_anchor_charged_4" then + minetest.set_node(checkblock, {name="mcl_beds:respawn_anchor_charged_3"}) + player:set_pos(checkblock) + else + player:get_meta():set_string("mcl_beds:spawn", "") + minetest.chat_send_player(player:get_player_name(), S("Your spawn bed was missing or blocked, and you had no charged respawn anchor")) + return mcl_spawn.get_world_spawn_pos(), false + end + end + end + end end - minetest.chat_send_player(player:get_player_name(), S("Your spawn bed was missing or blocked.")) - return mcl_spawn.get_world_spawn_pos(), false end -- Find spawning position on/near the bed free of solid or damaging blocks iterating a square spiral 15x15: