Regularily damage and delete entities in void

This commit is contained in:
Wuzzy 2018-05-25 13:45:41 +02:00
parent ab38d55646
commit 48b7191af2
7 changed files with 51 additions and 22 deletions

View file

@ -3,8 +3,10 @@ minetest.register_on_dieplayer(function(player)
if keep == false then
-- Drop inventory, crafting grid and armor
local inv = player:get_inventory()
local pos = player:getpos()
local pos = player:get_pos()
local name, player_armor_inv, armor_armor_inv, pos = armor:get_valid_player(player, "[on_dieplayer]")
-- No item drop if in deep void
local void, void_deadly = mcl_worlds.is_in_void(pos)
local lists = {
{ inv = inv, listname = "main", drop = true },
{ inv = inv, listname = "craft", drop = true },
@ -21,7 +23,7 @@ minetest.register_on_dieplayer(function(player)
local z = math.random(0, 9)/3
pos.x = pos.x + x
pos.z = pos.z + z
if drop then
if not void_deadly and drop then
minetest.add_item(pos, stack)
end
stack:clear()

View file

@ -1,5 +1,4 @@
mcl_init
mcl_worlds
mcl_core
mcl_particles
mcl_hunger

View file

@ -141,25 +141,6 @@ minetest.register_globalstep(function(dtime)
end
end
-- Deal Void damage
local void, void_deadly = mcl_worlds.is_in_void(pos)
if void_deadly then
-- Player is deep into the void, deal void damage
if minetest.settings:get_bool("enable_damage") then
if player:get_hp() > 0 then
mcl_death_messages.player_damage(player, string.format("%s fell into the endless void.", name))
player:set_hp(player:get_hp() - 4)
end
else
-- If damge is disabled, we can't kill the player.
-- So we just teleport the player back to spawn.
local spawn = mcl_spawn.get_spawn_pos(player)
player:set_pos(spawn)
mcl_worlds.dimension_change(player, mcl_worlds.pos_to_dimension(spawn))
minetest.chat_send_player(name, "The void is off-limits to you!")
end
end
--[[ Swimming: Cause exhaustion.
NOTE: As of 0.4.15, it only counts as swimming when you are with the feet inside the liquid!
Head alone does not count. We respect that for now. ]]