Dig rate limiter (#48)

* limit_dig_rate config option
* digging rate limiter
master
SX 2021-02-07 12:32:41 +02:00 committed by GitHub
parent cd8f12ba08
commit 78a8e0af74
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 0 deletions

View File

@ -77,6 +77,8 @@ if xp_redo.enable_dignode_rewards then
end
-- bonus on digging
local dig_limiter = (xp_redo.limit_dig_rate and xp_redo.limit_dig_rate > 0) and
create_limiter(1 / xp_redo.limit_dig_rate)
minetest.register_on_dignode(function(_, oldnode, digger)
if digger ~= nil and digger:is_player() and not digger.is_fake_player then
if not oldnode.name then
@ -88,6 +90,11 @@ minetest.register_on_dignode(function(_, oldnode, digger)
return
end
-- digging rate limiter
if dig_limiter and dig_limiter(digger:get_player_name()) then
return
end
-- no reward for nodes that are fast to dig and add no tool wear
local dig_immediate = minetest.get_item_group(oldnode.name, "dig_immediate")
if dig_immediate == 2 or dig_immediate == 3 then

View File

@ -15,6 +15,9 @@ xp_redo = {
-- xp penalty on player death
enable_death_malus = minetest.settings:get_bool("xp.enable_death_malus", true),
-- digging rate limiter
limit_dig_rate = tonumber(minetest.settings:get("xp.limit_dig_rate")),
hud = {
posx = tonumber(minetest.settings:get("xp.hud.offsetx") or 0.8),
posy = tonumber(minetest.settings:get("xp.hud.offsety") or 0.7)