mirror of
https://github.com/Xevion/project-cybersyn.git
synced 2025-12-16 04:12:53 -06:00
attempted fix
This commit is contained in:
@@ -124,7 +124,6 @@ function init_global()
|
|||||||
global.layout_train_count = {}
|
global.layout_train_count = {}
|
||||||
global.layout_top_id = 1
|
global.layout_top_id = 1
|
||||||
|
|
||||||
IS_SE_PRESENT = remote.interfaces["space-exploration"] ~= nil
|
|
||||||
if IS_SE_PRESENT then
|
if IS_SE_PRESENT then
|
||||||
global.se_tele_old_id = {}
|
global.se_tele_old_id = {}
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -947,77 +947,7 @@ local function on_settings_changed(event)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function setup_se_compat()
|
||||||
local filter_built = {
|
|
||||||
{filter = "name", name = "train-stop"},
|
|
||||||
{filter = "name", name = COMBINATOR_NAME},
|
|
||||||
{filter = "type", type = "inserter"},
|
|
||||||
{filter = "type", type = "pump"},
|
|
||||||
{filter = "type", type = "straight-rail"},
|
|
||||||
}
|
|
||||||
local filter_broken = {
|
|
||||||
{filter = "name", name = "train-stop"},
|
|
||||||
{filter = "name", name = COMBINATOR_NAME},
|
|
||||||
{filter = "type", type = "inserter"},
|
|
||||||
{filter = "type", type = "pump"},
|
|
||||||
{filter = "type", type = "straight-rail"},
|
|
||||||
{filter = "rolling-stock"},
|
|
||||||
}
|
|
||||||
local function main()
|
|
||||||
mod_settings.tps = settings.global["cybersyn-ticks-per-second"].value --[[@as double]]
|
|
||||||
mod_settings.update_rate = settings.global["cybersyn-update-rate"].value --[[@as int]]
|
|
||||||
mod_settings.r_threshold = settings.global["cybersyn-request-threshold"].value--[[@as int]]
|
|
||||||
mod_settings.network_flag = settings.global["cybersyn-network-flag"].value--[[@as int]]
|
|
||||||
mod_settings.depot_bypass_threshold = settings.global["cybersyn-depot-bypass-threshold"].value--[[@as double]]
|
|
||||||
mod_settings.warmup_time = settings.global["cybersyn-warmup-time"].value--[[@as double]]
|
|
||||||
mod_settings.stuck_train_time = settings.global["cybersyn-stuck-train-time"].value--[[@as double]]
|
|
||||||
|
|
||||||
mod_settings.missing_train_alert_enabled = true
|
|
||||||
mod_settings.stuck_train_alert_enabled = true
|
|
||||||
mod_settings.react_to_nonempty_train_in_depot = true
|
|
||||||
mod_settings.react_to_train_at_incorrect_station = true
|
|
||||||
mod_settings.react_to_train_early_to_depot = true
|
|
||||||
|
|
||||||
--NOTE: There is a concern that it is possible to build or destroy important entities without one of these events being triggered, in which case the mod will have undefined behavior
|
|
||||||
script.on_event(defines.events.on_built_entity, on_built, filter_built)
|
|
||||||
script.on_event(defines.events.on_robot_built_entity, on_built, filter_built)
|
|
||||||
script.on_event({defines.events.script_raised_built, defines.events.script_raised_revive, defines.events.on_entity_cloned}, on_built)
|
|
||||||
|
|
||||||
script.on_event(defines.events.on_player_rotated_entity, on_rotate)
|
|
||||||
|
|
||||||
script.on_event(defines.events.on_pre_player_mined_item, on_broken, filter_broken)
|
|
||||||
script.on_event(defines.events.on_robot_pre_mined, on_broken, filter_broken)
|
|
||||||
script.on_event(defines.events.on_entity_died, on_broken, filter_broken)
|
|
||||||
script.on_event(defines.events.script_raised_destroy, on_broken)
|
|
||||||
|
|
||||||
script.on_event({defines.events.on_pre_surface_deleted, defines.events.on_pre_surface_cleared}, on_surface_removed)
|
|
||||||
|
|
||||||
script.on_event(defines.events.on_entity_settings_pasted, on_paste)
|
|
||||||
|
|
||||||
if mod_settings.tps > DELTA then
|
|
||||||
local nth_tick = ceil(60/mod_settings.tps)--[[@as uint]];
|
|
||||||
script.on_nth_tick(nth_tick, function()
|
|
||||||
tick(global, mod_settings)
|
|
||||||
end)
|
|
||||||
else
|
|
||||||
script.on_nth_tick(nil)
|
|
||||||
end
|
|
||||||
|
|
||||||
script.on_event(defines.events.on_train_created, on_train_built)
|
|
||||||
script.on_event(defines.events.on_train_changed_state, on_train_changed)
|
|
||||||
|
|
||||||
script.on_event(defines.events.on_entity_renamed, on_rename)
|
|
||||||
|
|
||||||
script.on_event(defines.events.on_runtime_mod_setting_changed, on_settings_changed)
|
|
||||||
|
|
||||||
register_gui_actions()
|
|
||||||
|
|
||||||
script.on_init(init_global)
|
|
||||||
|
|
||||||
script.on_configuration_changed(on_config_changed)
|
|
||||||
|
|
||||||
|
|
||||||
script.on_load(function()
|
|
||||||
IS_SE_PRESENT = remote.interfaces["space-exploration"] ~= nil
|
IS_SE_PRESENT = remote.interfaces["space-exploration"] ~= nil
|
||||||
if not IS_SE_PRESENT then return end
|
if not IS_SE_PRESENT then return end
|
||||||
|
|
||||||
@@ -1107,7 +1037,81 @@ local function main()
|
|||||||
end
|
end
|
||||||
interface_raise_train_teleported(new_id, old_id)
|
interface_raise_train_teleported(new_id, old_id)
|
||||||
end)
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local filter_built = {
|
||||||
|
{filter = "name", name = "train-stop"},
|
||||||
|
{filter = "name", name = COMBINATOR_NAME},
|
||||||
|
{filter = "type", type = "inserter"},
|
||||||
|
{filter = "type", type = "pump"},
|
||||||
|
{filter = "type", type = "straight-rail"},
|
||||||
|
}
|
||||||
|
local filter_broken = {
|
||||||
|
{filter = "name", name = "train-stop"},
|
||||||
|
{filter = "name", name = COMBINATOR_NAME},
|
||||||
|
{filter = "type", type = "inserter"},
|
||||||
|
{filter = "type", type = "pump"},
|
||||||
|
{filter = "type", type = "straight-rail"},
|
||||||
|
{filter = "rolling-stock"},
|
||||||
|
}
|
||||||
|
local function main()
|
||||||
|
mod_settings.tps = settings.global["cybersyn-ticks-per-second"].value --[[@as double]]
|
||||||
|
mod_settings.update_rate = settings.global["cybersyn-update-rate"].value --[[@as int]]
|
||||||
|
mod_settings.r_threshold = settings.global["cybersyn-request-threshold"].value--[[@as int]]
|
||||||
|
mod_settings.network_flag = settings.global["cybersyn-network-flag"].value--[[@as int]]
|
||||||
|
mod_settings.depot_bypass_threshold = settings.global["cybersyn-depot-bypass-threshold"].value--[[@as double]]
|
||||||
|
mod_settings.warmup_time = settings.global["cybersyn-warmup-time"].value--[[@as double]]
|
||||||
|
mod_settings.stuck_train_time = settings.global["cybersyn-stuck-train-time"].value--[[@as double]]
|
||||||
|
|
||||||
|
mod_settings.missing_train_alert_enabled = true
|
||||||
|
mod_settings.stuck_train_alert_enabled = true
|
||||||
|
mod_settings.react_to_nonempty_train_in_depot = true
|
||||||
|
mod_settings.react_to_train_at_incorrect_station = true
|
||||||
|
mod_settings.react_to_train_early_to_depot = true
|
||||||
|
|
||||||
|
--NOTE: There is a concern that it is possible to build or destroy important entities without one of these events being triggered, in which case the mod will have undefined behavior
|
||||||
|
script.on_event(defines.events.on_built_entity, on_built, filter_built)
|
||||||
|
script.on_event(defines.events.on_robot_built_entity, on_built, filter_built)
|
||||||
|
script.on_event({defines.events.script_raised_built, defines.events.script_raised_revive, defines.events.on_entity_cloned}, on_built)
|
||||||
|
|
||||||
|
script.on_event(defines.events.on_player_rotated_entity, on_rotate)
|
||||||
|
|
||||||
|
script.on_event(defines.events.on_pre_player_mined_item, on_broken, filter_broken)
|
||||||
|
script.on_event(defines.events.on_robot_pre_mined, on_broken, filter_broken)
|
||||||
|
script.on_event(defines.events.on_entity_died, on_broken, filter_broken)
|
||||||
|
script.on_event(defines.events.script_raised_destroy, on_broken)
|
||||||
|
|
||||||
|
script.on_event({defines.events.on_pre_surface_deleted, defines.events.on_pre_surface_cleared}, on_surface_removed)
|
||||||
|
|
||||||
|
script.on_event(defines.events.on_entity_settings_pasted, on_paste)
|
||||||
|
|
||||||
|
if mod_settings.tps > DELTA then
|
||||||
|
local nth_tick = ceil(60/mod_settings.tps)--[[@as uint]];
|
||||||
|
script.on_nth_tick(nth_tick, function()
|
||||||
|
tick(global, mod_settings)
|
||||||
end)
|
end)
|
||||||
|
else
|
||||||
|
script.on_nth_tick(nil)
|
||||||
|
end
|
||||||
|
|
||||||
|
script.on_event(defines.events.on_train_created, on_train_built)
|
||||||
|
script.on_event(defines.events.on_train_changed_state, on_train_changed)
|
||||||
|
|
||||||
|
script.on_event(defines.events.on_entity_renamed, on_rename)
|
||||||
|
|
||||||
|
script.on_event(defines.events.on_runtime_mod_setting_changed, on_settings_changed)
|
||||||
|
|
||||||
|
register_gui_actions()
|
||||||
|
|
||||||
|
script.on_init(function()
|
||||||
|
setup_se_compat()
|
||||||
|
init_global()
|
||||||
|
end)
|
||||||
|
|
||||||
|
script.on_configuration_changed(on_config_changed)
|
||||||
|
|
||||||
|
script.on_load(setup_se_compat)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user