Add stresstest example use globalstep less often

This commit is contained in:
Wuzzy 2014-07-07 10:39:21 +02:00
parent bbc90ad630
commit 050be27a3b
2 changed files with 33 additions and 1 deletions

View File

@ -42,6 +42,12 @@ playereffects.register_effect_type("fly", "Fly mode available", "playereffects_e
minetest.set_player_privs(effect.playername, privs)
end
)
playereffects.register_effect_type("stress", "Stress Test Effect", nil, {},
function(player)
end,
function(effect)
end
)
minetest.register_chatcommand("fast", {
@ -77,3 +83,22 @@ minetest.register_chatcommand("fly", {
playereffects.apply_effect_type("fly", 20, minetest.get_player_by_name(name))
end,
})
minetest.register_chatcommand("stresstest", {
params = "[<effects>]",
descriptions = "Start the stress test for Player Effects with <effects> effects.",
privs = {server=true},
func = function(name, param)
local player = minetest.get_player_by_name(name)
local max = 100
if(type(param)=="string") then
if(type(tonumber(param)) == "number") then
max = tonumber(param)
if(max > 1000) then max = 1000 end
end
end
minetest.debug("[playereffects] Stress test started for "..name.." with "..max.." effects.")
for i=1,max do
playereffects.apply_effect_type("stress", 10, player)
end
end
})

View File

@ -234,7 +234,14 @@ minetest.register_on_joinplayer(function(player)
end
end)
minetest.register_globalstep(function()
playereffects.globalstep_timer = 0
minetest.register_globalstep(function(dtime)
playereffects.globalstep_timer = playereffects.globalstep_timer + dtime
if(playereffects.globalstep_timer < 1) then
return
end
playereffects.globalstep_timer = 0
local players = minetest.get_connected_players()
for p=1,#players do
playereffects.hud_update(players[p])