2020-07-15 00:44:49 -07:00
|
|
|
if minetest.get_modpath("player_monoids") ~= nil then
|
2020-07-14 00:05:04 -07:00
|
|
|
|
2020-07-13 23:58:04 -07:00
|
|
|
local default_minetest_wadsprint_initialize_player = minetest_wadsprint.initialize_player
|
|
|
|
function minetest_wadsprint.initialize_player(player_obj)
|
|
|
|
default_minetest_wadsprint_initialize_player(player_obj)
|
|
|
|
minetest_wadsprint.stats[player_obj:get_player_name()].monoids = {}
|
|
|
|
minetest_wadsprint.stats[player_obj:get_player_name()].monoids.jump = {}
|
|
|
|
minetest_wadsprint.stats[player_obj:get_player_name()].monoids.speed = {}
|
|
|
|
end
|
2019-08-24 07:55:17 -07:00
|
|
|
function minetest_wadsprint.set_sprinting_physics(player,is_on_val)
|
|
|
|
if player.is_sprinting_physics_on ~= is_on_val then
|
|
|
|
if is_on_val == true then
|
2020-07-13 23:09:16 -07:00
|
|
|
table.insert(
|
2020-07-14 00:03:25 -07:00
|
|
|
player.monoids.jump,
|
|
|
|
player_monoids.jump:add_change(
|
|
|
|
player.obj,
|
2020-07-14 22:25:14 -07:00
|
|
|
minetest_wadsprint.SPRINT_JUMP_HEIGHT_BOOST_COEFFICIENT
|
2020-07-14 00:03:25 -07:00
|
|
|
)
|
2019-08-24 07:55:17 -07:00
|
|
|
)
|
2020-07-13 23:09:16 -07:00
|
|
|
table.insert(
|
2020-07-14 00:03:25 -07:00
|
|
|
player.monoids.speed,
|
|
|
|
player_monoids.speed:add_change(
|
|
|
|
player.obj,
|
2020-07-14 22:25:14 -07:00
|
|
|
minetest_wadsprint.SPRINT_RUN_SPEED_BOOST_COEFFICIENT
|
2020-07-14 00:03:25 -07:00
|
|
|
)
|
2019-08-24 07:55:17 -07:00
|
|
|
)
|
|
|
|
elseif player.is_sprinting_physics_on ~= nil then
|
2020-07-13 23:09:16 -07:00
|
|
|
while #player.monoids.jump ~= 0 do
|
2020-07-14 00:03:25 -07:00
|
|
|
player_monoids.jump:del_change(player.obj, table.remove(player.monoids.jump))
|
2020-07-13 23:09:16 -07:00
|
|
|
end
|
|
|
|
while #player.monoids.speed ~= 0 do
|
2020-07-14 00:03:25 -07:00
|
|
|
player_monoids.speed:del_change(player.obj, table.remove(player.monoids.speed))
|
2020-07-13 23:09:16 -07:00
|
|
|
end
|
2019-08-24 07:55:17 -07:00
|
|
|
end
|
|
|
|
player.is_sprinting_physics_on = is_on_val
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
function minetest_wadsprint.set_sprinting_physics(player,is_on_val)
|
|
|
|
if player.is_sprinting_physics_on ~= is_on_val then
|
|
|
|
local physics = player.obj:get_physics_override()
|
|
|
|
if is_on_val == true then
|
|
|
|
player.obj:set_physics_override(
|
|
|
|
{
|
2020-07-15 00:44:49 -07:00
|
|
|
jump = minetest_wadsprint.SPRINT_JUMP_HEIGHT_BOOST_COEFFICIENT,
|
|
|
|
speed = minetest_wadsprint.SPRINT_RUN_SPEED_BOOST_COEFFICIENT,
|
2019-08-24 07:55:17 -07:00
|
|
|
})
|
|
|
|
elseif player.is_sprinting_physics_on ~= nil then
|
|
|
|
player.obj:set_physics_override(
|
|
|
|
{
|
2020-07-15 00:44:49 -07:00
|
|
|
jump = 1,
|
|
|
|
speed = 1,
|
2019-08-24 07:55:17 -07:00
|
|
|
})
|
|
|
|
end
|
|
|
|
player.is_sprinting_physics_on = is_on_val
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|