Limit handheld map globalstep update rates

Co-authored-by: Ælla Chiana Moskopp <erle@dieweltistgarnichtso.net>
This commit is contained in:
Mikita Wiśniewski 2025-03-02 11:12:45 +07:00 committed by the-real-herowl
parent f6eaa49fd4
commit 3d6647e29d
2 changed files with 11 additions and 0 deletions
mods/ITEMS/mcl_maps
settingtypes.txt

View file

@ -11,6 +11,7 @@ mcl_maps.max_zoom = (tonumber(core.settings:get("vl_maps_max_zoom")) or 4)
mcl_maps.enable_maps = core.settings:get_bool("enable_real_maps", true)
mcl_maps.allow_nether_maps = core.settings:get_bool("vl_maps_allow_nether", true)
mcl_maps.map_allow_overlap = core.settings:get_bool("vl_maps_allow_overlap", true) -- 50% overlap allowed in each level
mcl_maps.map_update_rate = 1 / (tonumber(core.settings:get("vl_maps_map_update_rate")) or 15) -- invert for the globalstep check
local modname = core.get_current_modname()
local modpath = core.get_modpath(modname)
@ -425,7 +426,14 @@ core.register_on_leaveplayer(function(player)
huds[player] = nil
end)
local etime = 0
core.register_globalstep(function(dtime)
etime = etime + dtime
if etime < mcl_maps.map_update_rate then
return
end
etime = 0
for _, player in pairs(get_connected_players()) do
local wield = player:get_wielded_item()
local texture = mcl_maps.load_map_item(wield)

View file

@ -329,6 +329,9 @@ vl_maps_allow_overlap (Allow overlapping maps by 50%) bool true
# Maximum map zoom level permitted (high zoom levels can take very long, do not increase on multiplayer servers)
vl_maps_max_zoom (Maximum Zoom Level) int 2 1 5
# How many times per second should handheld maps be updated
vl_maps_update_rate (Map updates per second) int 15 1 60
# Enable workarounds for faulty mob navigation.
# Hack 1: teleport golems home if they are very far from home
mcl_mob_allow_nav_hacks (Mob navigation hacks) bool false