not working - middle of fix for energy boosts

This commit is contained in:
Tai Kedzierski 2018-12-23 23:43:52 +00:00
parent 09923bb402
commit fe3f2f4c8c

View File

@ -48,6 +48,7 @@ local function set_player_boost(user, power)
phys = round_physics(user:get_physics_override() ) phys = round_physics(user:get_physics_override() )
if phys.speed == 1 and phys.gravity == 1 then
local newphys = { local newphys = {
speed = phys.speed * coefficients.speed, speed = phys.speed * coefficients.speed,
gravity = phys.gravity/(coefficients.gravity*power), gravity = phys.gravity/(coefficients.gravity*power),
@ -63,21 +64,32 @@ local function set_player_boost(user, power)
user:set_physics_override(newphys) user:set_physics_override(newphys)
tell_player_physics(user:get_player_name(), newphys) tell_player_physics(user:get_player_name(), newphys)
minetest.after(power * 2.5, function() stack_boost(user:get_player_name(), power*2.5, diff)
end
stack_boost(user:get_player_name(), power*2.5)
end
minetest.register_onstep(function(dtime)
-- Power down players with boosts
for -- get each boosted player, apply change
-- By the time we run the boost removal function, the player's physics -- By the time we run the boost removal function, the player's physics
-- may have been further modified - get the current state of the player -- may have been further modified - get the current state of the player
local boosted_phys = round_physics(user:get_physics_override() ) local boosted_phys = round_physics(user:get_physics_override() )
local boostcount, gotdiff = unstack_boost(user:get_player_name())
if boostcount < 1 then
-- Remove the value of the boost when it was set, leaving the additional boost in place -- Remove the value of the boost when it was set, leaving the additional boost in place
local restored_phys = { local restored_phys = {
speed = boosted_phys.speed - diff.speed, speed = boosted_phys.speed - gotdiff.speed,
gravity = boosted_phys.gravity - diff.gravity, gravity = boosted_phys.gravity - gotdiff.gravity,
} }
restored_phys = round_physics(restored_phys) restored_phys = round_physics(restored_phys)
user:set_physics_override(restored_phys) user:set_physics_override(restored_phys)
tell_player_physics(user:get_player_name(), restored_phys) tell_player_physics(user:get_player_name(), restored_phys)
end) end
end end)
local function eat_energy(itemstack, user, pointedthing) local function eat_energy(itemstack, user, pointedthing)