Merge pull request #71 from mamoniot/beta-on-nth-tick-collision-fix

Fix edge case registering script.on_nth_tick() handlers in script/main.lua
This commit is contained in:
Monica Moniot
2023-04-30 14:26:13 -04:00
committed by GitHub

View File

@@ -847,6 +847,14 @@ local function grab_all_settings()
end
local function register_tick()
script.on_nth_tick(nil)
--edge case catch to register both main and manager tick if they're scheduled to run on the same ticks
if mod_settings.manager_enabled and mod_settings.manager_ups == mod_settings.tps and mod_settings.tps > DELTA then
local nth_tick = ceil(60/mod_settings.tps)
script.on_nth_tick(nth_tick, function()
tick(global, mod_settings)
manager.tick(global)
end)
else
if mod_settings.tps > DELTA then
local nth_tick_main = ceil(60/mod_settings.tps)--[[@as uint]]
script.on_nth_tick(nth_tick_main, function()
@@ -860,6 +868,7 @@ local function register_tick()
end)
end
end
end
local function on_settings_changed(event)
grab_all_settings()
if event.setting == "cybersyn-ticks-per-second" or event.setting == "cybersyn-manager-updates-per-second" then