aboutsummaryrefslogtreecommitdiff
path: root/builtin/client/death_formspec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'builtin/client/death_formspec.lua')
-rw-r--r--builtin/client/death_formspec.lua37
1 files changed, 30 insertions, 7 deletions
diff --git a/builtin/client/death_formspec.lua b/builtin/client/death_formspec.lua
index c25c799ab..ff484b32f 100644
--- a/builtin/client/death_formspec.lua
+++ b/builtin/client/death_formspec.lua
@@ -1,15 +1,38 @@
--- CSM death formspec. Only used when clientside modding is enabled, otherwise
--- handled by the engine.
+local death_formspec = ""
+ .. "size[11,5.5]"
+ .. "bgcolor[#320000b4;true]"
+ .. "label[4.85,1.35;" .. fgettext("You died") .. "]"
+ .. "button_exit[2,3;3,0.5;btn_respawn;" .. fgettext("Respawn") .. "]"
+ .. "button_exit[6,3;3,0.5;btn_ghost_mode;" .. "Ghost Mode" .. "]"
+ .. "set_focus[btn_respawn;true]"
core.register_on_death(function()
- local formspec = "size[11,5.5]bgcolor[#320000b4;true]" ..
- "label[4.85,1.35;" .. fgettext("You died") ..
- "]button_exit[4,3;3,0.5;btn_respawn;".. fgettext("Respawn") .."]"
- core.show_formspec("bultin:death", formspec)
+ core.display_chat_message("You died at " .. core.pos_to_string(vector.round(core.localplayer:get_pos())) .. ".")
+ if core.settings:get_bool("autorespawn") then
+ core.send_respawn()
+ else
+ core.show_formspec("bultin:death", death_formspec)
+ end
end)
core.register_on_formspec_input(function(formname, fields)
if formname == "bultin:death" then
- core.send_respawn()
+ if fields.btn_ghost_mode then
+ core.display_chat_message("You are in ghost mode. Use .respawn to Respawn.")
+ else
+ core.send_respawn()
+ end
end
end)
+
+core.register_chatcommand("respawn", {
+ description = "Respawn when in ghost mode",
+ func = function()
+ if core.localplayer:get_hp() == 0 then
+ core.send_respawn()
+ core.display_chat_message("Respawned.")
+ else
+ core.display_chat_message("You are not in ghost mode.")
+ end
+ end
+})