From fceffa6f1c92f9d63daa656f856212b3b2dbe6a2 Mon Sep 17 00:00:00 2001 From: Brandon Date: Tue, 23 Jun 2020 21:36:55 -0400 Subject: [PATCH] Smooth out FOV changes, add specificity to potion effects to avoid overlap --- mods/ITEMS/mcl_potions/functions.lua | 23 +++++++++++++---------- mods/PLAYER/mcl_sprint/init.lua | 4 ++-- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/mods/ITEMS/mcl_potions/functions.lua b/mods/ITEMS/mcl_potions/functions.lua index 45900c4d51..23e957e3d0 100644 --- a/mods/ITEMS/mcl_potions/functions.lua +++ b/mods/ITEMS/mcl_potions/functions.lua @@ -124,7 +124,7 @@ minetest.register_globalstep(function(dtime) if player:get_pos() then mcl_potions._add_spawner(player, "#00CC33") end if is_leaping[player].timer >= is_leaping[player].dur then - playerphysics.remove_physics_factor(player, "jump", "leaping") + playerphysics.remove_physics_factor(player, "jump", "mcl_potions:leaping") is_leaping[player] = nil end @@ -146,7 +146,7 @@ minetest.register_globalstep(function(dtime) if player:get_pos() then mcl_potions._add_spawner(player, "#009999") end if is_swift[player].timer >= is_swift[player].dur then - playerphysics.remove_physics_factor(player, "speed", "swiftness") + playerphysics.remove_physics_factor(player, "speed", "mcl_potions:swiftness") is_swift[player] = nil end @@ -178,10 +178,9 @@ minetest.register_globalstep(function(dtime) end -end ) +end) --- reset player is_invisible/poison if they go offline -minetest.register_on_leaveplayer(function(player) +local function _reset_player_effects(player) player = player or player:get_luaentity() @@ -221,7 +220,11 @@ minetest.register_on_leaveplayer(function(player) is_cat[player] = nil end -end) +end + +minetest.register_on_leaveplayer( function(player) _reset_player_effects(player) end) + +minetest.register_on_dieplayer( function(player) _reset_player_effects(player) end) function mcl_potions.make_invisible(player, toggle) @@ -326,13 +329,13 @@ function mcl_potions.swiftness_func(player, factor, duration) if not is_swift[player] then is_swift[player] = {dur = duration, timer = 0} - playerphysics.add_physics_factor(player, "speed", "swiftness", factor) + playerphysics.add_physics_factor(player, "speed", "mcl_potions:swiftness", factor) else local victim = is_swift[player] - playerphysics.add_physics_factor(player, "speed", "swiftness", factor) + playerphysics.add_physics_factor(player, "speed", "mcl_potions:swiftness", factor) victim.dur = math.max(duration, victim.dur - victim.timer) victim.timer = 0 @@ -347,13 +350,13 @@ function mcl_potions.leaping_func(player, factor, duration) if not is_leaping[player] then is_leaping[player] = {dur = duration, timer = 0} - playerphysics.add_physics_factor(player, "jump", "leaping", factor) + playerphysics.add_physics_factor(player, "jump", "mcl_potions:leaping", factor) else local victim = is_leaping[player] - playerphysics.add_physics_factor(player, "jump", "leaping", factor) + playerphysics.add_physics_factor(player, "jump", "mcl_potions:leaping", factor) victim.dur = math.max(duration, victim.dur - victim.timer) victim.timer = 0 diff --git a/mods/PLAYER/mcl_sprint/init.lua b/mods/PLAYER/mcl_sprint/init.lua index 02e4a65f5b..46eac2a843 100644 --- a/mods/PLAYER/mcl_sprint/init.lua +++ b/mods/PLAYER/mcl_sprint/init.lua @@ -46,11 +46,11 @@ local function setSprinting(playerName, sprinting) --Sets the state of a player if players[playerName] then players[playerName].sprinting = sprinting if sprinting == true then - players[playerName].fov = math.min(players[playerName].fov + 0.02, 1.2) + players[playerName].fov = math.min(players[playerName].fov + 0.03, 1.2) player:set_fov(players[playerName].fov, true, 0.15) playerphysics.add_physics_factor(player, "speed", "mcl_sprint:sprint", mcl_sprint.SPEED) elseif sprinting == false then - players[playerName].fov = math.max(players[playerName].fov - 0.02, 1.0) + players[playerName].fov = math.max(players[playerName].fov - 0.03, 1.0) player:set_fov(players[playerName].fov, true, 0.15) playerphysics.remove_physics_factor(player, "speed", "mcl_sprint:sprint") end