mirror of
https://github.com/mt-mods/spacesuit.git
synced 2026-05-04 13:56:51 -06:00
Wear spacesuit accounting for server lag
This makes spacesuit wear independent from server lag. The timer between updates should average one second. If it is more, multiplying by the timer value increases wear as if an update had happened at every additional step (except the wear value would be rounded to an integer between 0 and 65535 every time). Because the real average is slightly higher than one second, multiplying by the timer value decreases how long the spacesuit lasts. With one additional step per update and steps of 0.034 seconds (the average time I get in singleplayer), that means 2 or 3 additional wear. So I also decrease armor_use to 70, which restores the spacesuit to lasting as long as before or slightly longer. Also, this allows increasing the minimum timer value to two seconds or more without needing to change the armor_use value.
This commit is contained in:
+1
-1
@@ -29,7 +29,7 @@ minetest.register_globalstep(function(dtime)
|
|||||||
for i, stack in pairs(armor_inv:get_list("armor")) do
|
for i, stack in pairs(armor_inv:get_list("armor")) do
|
||||||
if not stack:is_empty() then
|
if not stack:is_empty() then
|
||||||
local name = stack:get_name()
|
local name = stack:get_name()
|
||||||
local use = minetest.get_item_group(name, "armor_use") or 0
|
local use = minetest.get_item_group(name, "armor_use") * timer or 0
|
||||||
armor:damage(player, i, stack, use)
|
armor:damage(player, i, stack, use)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user