speed factor

This commit is contained in:
Andrey Stepanov 2025-01-26 15:14:57 +05:00
parent d920f8e9d0
commit 5bff4be50b
Signed by: Koldun
GPG Key ID: 53DE683337F5D25F
2 changed files with 38 additions and 1 deletions

View File

@ -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
)

View File

@ -1,3 +1,3 @@
name = medical
description = Health and nutrition
depends = unified_inventory, toolcap_monoids, hand_monoid
depends = unified_inventory, player_monoids, toolcap_monoids, hand_monoid