]> git.lizzy.rs Git - Crafter.git/commitdiff
Stop health regenerating while drowning
authoroilboi <47129783+oilboi@users.noreply.github.com>
Tue, 19 May 2020 17:07:17 +0000 (13:07 -0400)
committeroilboi <47129783+oilboi@users.noreply.github.com>
Tue, 19 May 2020 17:07:17 +0000 (13:07 -0400)
mods/hunger/init.lua
mods/new_functions/init.lua

index 723ba8b32f6e1d5631522c498e1fffb6d453cdd6..0154488fd518bc269a261c2da0132d764c08a807 100644 (file)
@@ -158,7 +158,7 @@ local function hunger_update()
                        
                        local hp = player:get_hp()
                        --make regeneration happen every second
-                       if hunger >= 20 and hp < 20 and satiation > 0 then
+                       if meta:get_int("drowning") == 0 and hunger >= 20 and hp < 20 and satiation > 0 then
                                local regeneration_interval = meta:get_int("regeneration_interval")
                                --print(regeneration_interval,"--------------------------")
                                regeneration_interval = regeneration_interval + 1
index a584c524e17dfc51fafcd13e2184e3ac830f090b..c5b6e8656d46106b2ef5b741ec444dcc328f3df6 100644 (file)
@@ -249,6 +249,14 @@ minetest.register_on_joinplayer(function(player)
        meta:set_int("breathbar", bubble_id)
 end)
 
+minetest.register_on_respawnplayer(function(player)
+       local meta = player:get_meta()
+       meta:set_int("breath", 10)
+       meta:set_int("drowning", 0)
+       meta:set_int("breath_ticker", 0)
+       player:hud_change(meta:get_int("breathbar"), "number", 20)
+end)
+
 --begin custom breathbar
 local name
 local indexer
@@ -274,6 +282,7 @@ local function fix_breath_hack()
                                breath = breath - 1
                                meta:set_int("breath", breath)
                                player:hud_change(breathbar, "number", breath*2)
+                               meta:set_int("drowning", 0)
                        elseif breath <= 0 and ticker >= 5 then
                                local hp =  player:get_hp()
                                meta:set_int("drowning", 1)
@@ -282,7 +291,9 @@ local function fix_breath_hack()
                                                {
                                                full_punch_interval=1.5,
                                                damage_groups = {fleshy=2},
-                                               })
+                                               }
+                                       )
+                                       player:add_player_velocity(vector.new(0,-15,0))
                                end
                        end
                elseif breath < 10 then --reset the bar
@@ -293,8 +304,6 @@ local function fix_breath_hack()
                        meta:set_int("breath_ticker", 0)
                        player:hud_change(breathbar, "number", breath*2)
                end
-
-               print(meta:get_int("drowning"))
        end
        
        minetest.after(0.25, function()