speed factor
This commit is contained in:
parent
d920f8e9d0
commit
5bff4be50b
37
engine.lua
37
engine.lua
@ -23,6 +23,13 @@ if storage:contains("dig_penalty") then
|
||||
)
|
||||
end
|
||||
|
||||
local speed_factor_storage = {}
|
||||
if storage:contains("speed_factor") then
|
||||
speed_factor_storage = minetest.deserialize(
|
||||
storage:get_string("speed_factor")
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
---@param dig_penalty number
|
||||
local function set_dig_penalty(player, dig_penalty)
|
||||
@ -120,3 +127,33 @@ minetest.register_on_player_inventory_action(
|
||||
end
|
||||
)
|
||||
|
||||
|
||||
---@param speed_factor number
|
||||
local function set_speed(player, speed_factor)
|
||||
local pname = player:get_player_name()
|
||||
local prev_speed_factor = speed_factor_storage[pname] or 1
|
||||
if speed_factor == prev_speed_factor then
|
||||
return
|
||||
end
|
||||
if speed_factor < 0 then
|
||||
speed_factor = prev_speed_factor
|
||||
end
|
||||
speed_factor_storage[pname] = speed_factor
|
||||
storage:set_string(
|
||||
"speed_factor",
|
||||
minetest.serialize(
|
||||
speed_factor_storage
|
||||
)
|
||||
)
|
||||
|
||||
player_monoids.speed:del_change(player, "medical")
|
||||
player_monoids.speed:add_change(player, speed_factor, "medical")
|
||||
end
|
||||
|
||||
|
||||
minetest.register_on_joinplayer(
|
||||
function(player, last_login)
|
||||
set_speed(player, -1)
|
||||
end
|
||||
)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user