-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontrol.lua
More file actions
49 lines (40 loc) · 2.15 KB
/
control.lua
File metadata and controls
49 lines (40 loc) · 2.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
require("defines")
require("functions")
fcm_debug = settings.startup[fcm_defines.keys.names.settings.debug_mode].value
fcm_registry = fcm_registry or {}
fcm_registry.events = fcm_registry.events or {}
fcm_registry.events.on_chunk_generated = fcm_registry.events.on_chunk_generated or {}
fcm_registry.ticks = fcm_registry.ticks or {}
fcm_registry.ticks.chunk_generated = fcm_registry.ticks.chunk_generated or {}
require("interfaces/mountains/control")
require("interfaces/toxic-jungle/control")
function init()
if game then
--nauvis registered by default by hardcode. may be unregistered by remove call
--remote.call("fcm_jungle","register_surface","nauvis")
--remote.call("fcm_mountains","register_surface","nauvis")
end
end
script.on_init(init)
script.on_load(init)
script.on_event(defines.events.on_runtime_mod_setting_changed, function()
end)
script.on_event(defines.events.on_chunk_generated, function(event)
fcm_registry.ticks.chunk_generated[#fcm_registry.ticks.chunk_generated+1] = event
--if fcm_debug then log("Event.on_chunk_generated: remaining chunk ticks: "..#fcm_registry.ticks.chunk_generated) end
end)
script.on_event(defines.events.on_tick,function(event)
--if fcm_debug then log("Count registered on chunk generated handlers: " .. #fcm_registry.events.on_chunk_generated.."; current tick: "..event.tick..", modulo: "..(event.tick % fcm_defines.defaults.chunk_generation_tick_treshhold)) end
if (event.tick % fcm_defines.defaults.chunk_generation_tick_treshhold) == 0 then
for i,chunk_event in ipairs(fcm_registry.ticks.chunk_generated) do
--if fcm_debug then log("Count registered on chunk generated handlers: " .. #fcm_registry.events.on_chunk_generated.."; chunk_event.tick: "..chunk_event.tick.."; check tick: "..(event.tick - fcm_defines.defaults.chunk_generation_tick_treshhold)) end
if chunk_event.tick < (event.tick - fcm_defines.defaults.chunk_generation_tick_treshhold) then
for _,fn in pairs(fcm_registry.events.on_chunk_generated) do
fn(chunk_event)
end
table.remove(fcm_registry.ticks.chunk_generated,i)
--if fcm_debug then log("remaining chunk ticks: "..#fcm_registry.ticks.chunk_generated) end
end
end
end
end)