mirror of
https://github.com/Xevion/project-cybersyn.git
synced 2025-12-10 02:08:11 -06:00
fixed massive number of things
This commit is contained in:
7
.vscode/settings.json
vendored
7
.vscode/settings.json
vendored
@@ -13,12 +13,9 @@
|
|||||||
"~/.steam/steam/steamapps/common/Factorio/data/core/lualib",
|
"~/.steam/steam/steamapps/common/Factorio/data/core/lualib",
|
||||||
"./.vscode/factorio",
|
"./.vscode/factorio",
|
||||||
"./.vscode/flib",
|
"./.vscode/flib",
|
||||||
"/home/mami/.config/Code/User/workspaceStorage/fdae937c5189f993d370b36f3104188f/justarandomgeek.factoriomod-debug/sumneko-3rd/factorio/library",
|
"/home/mami/.config/Code/User/workspaceStorage/4e7db8f77e7d31cf7af01a542e707dfb/justarandomgeek.factoriomod-debug/sumneko-3rd"
|
||||||
"/home/mami/.config/Code/User/workspaceStorage/95c2a8450056100ba3db30ac2a468857/justarandomgeek.factoriomod-debug/sumneko-3rd/factorio/library"
|
|
||||||
],
|
],
|
||||||
"Lua.workspace.userThirdParty": [
|
"Lua.workspace.userThirdParty": [
|
||||||
"/home/mami/.config/Code/User/workspaceStorage/fdae937c5189f993d370b36f3104188f/justarandomgeek.factoriomod-debug/sumneko-3rd",
|
|
||||||
"/home/mami/.config/Code/User/workspaceStorage/95c2a8450056100ba3db30ac2a468857/justarandomgeek.factoriomod-debug/sumneko-3rd",
|
|
||||||
"/home/mami/.config/Code/User/workspaceStorage/4e7db8f77e7d31cf7af01a542e707dfb/justarandomgeek.factoriomod-debug/sumneko-3rd"
|
"/home/mami/.config/Code/User/workspaceStorage/4e7db8f77e7d31cf7af01a542e707dfb/justarandomgeek.factoriomod-debug/sumneko-3rd"
|
||||||
],
|
],
|
||||||
"Lua.diagnostics.globals": [
|
"Lua.diagnostics.globals": [
|
||||||
@@ -36,7 +33,7 @@
|
|||||||
"Lua.runtime.special": {
|
"Lua.runtime.special": {
|
||||||
"__object_name": "type"
|
"__object_name": "type"
|
||||||
},
|
},
|
||||||
"Lua.runtime.plugin": "/home/mami/.config/Code/User/workspaceStorage/95c2a8450056100ba3db30ac2a468857/justarandomgeek.factoriomod-debug/sumneko-3rd/factorio/plugin.lua",
|
"Lua.runtime.plugin": "/home/mami/.config/Code/User/workspaceStorage/4e7db8f77e7d31cf7af01a542e707dfb/justarandomgeek.factoriomod-debug/sumneko-3rd/factorio/plugin.lua",
|
||||||
"Lua.diagnostics.disable": [
|
"Lua.diagnostics.disable": [
|
||||||
"lowercase-global"
|
"lowercase-global"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -93,17 +93,17 @@ function create_delivery(map_data, r_station_id, p_station_id, train_id, manifes
|
|||||||
if item_i > 1 or r_is_each or p_is_each then
|
if item_i > 1 or r_is_each or p_is_each then
|
||||||
local f, a
|
local f, a
|
||||||
if r_is_each then
|
if r_is_each then
|
||||||
f, a = pairs(r_station.network_flag--[[@as {[string]: int}]])
|
f, a = pairs(r_station.network_mask--[[@as {[string]: int}]])
|
||||||
if p_is_each then
|
if p_is_each then
|
||||||
for network_name, _ in f, a do
|
for network_name, _ in f, a do
|
||||||
local item_network_name = network_name..":"..item.name
|
local item_network_name = network_name..":"..item.name
|
||||||
economy.all_r_stations[item_network_name] = nil
|
economy.all_r_stations[item_network_name] = nil
|
||||||
economy.all_p_stations[item_network_name] = nil
|
economy.all_p_stations[item_network_name] = nil
|
||||||
end
|
end
|
||||||
f, a = pairs(p_station.network_flag--[[@as {[string]: int}]])
|
f, a = pairs(p_station.network_mask--[[@as {[string]: int}]])
|
||||||
end
|
end
|
||||||
elseif p_is_each then
|
elseif p_is_each then
|
||||||
f, a = pairs(p_station.network_flag--[[@as {[string]: int}]])
|
f, a = pairs(p_station.network_mask--[[@as {[string]: int}]])
|
||||||
else
|
else
|
||||||
f, a = once, r_station.network_name
|
f, a = once, r_station.network_name
|
||||||
end
|
end
|
||||||
@@ -350,8 +350,8 @@ local function tick_dispatch(map_data, mod_settings)
|
|||||||
goto p_continue
|
goto p_continue
|
||||||
end
|
end
|
||||||
|
|
||||||
p_flag = get_network_flag(p_station, network_name)
|
p_flag = get_network_mask(p_station, network_name)
|
||||||
r_flag = get_network_flag(r_station, network_name)
|
r_flag = get_network_mask(r_station, network_name)
|
||||||
netand = band(p_flag, r_flag)
|
netand = band(p_flag, r_flag)
|
||||||
if netand == 0 then
|
if netand == 0 then
|
||||||
goto p_continue
|
goto p_continue
|
||||||
@@ -413,7 +413,7 @@ local function tick_dispatch(map_data, mod_settings)
|
|||||||
if trains then
|
if trains then
|
||||||
for train_id, _ in pairs(trains) do
|
for train_id, _ in pairs(trains) do
|
||||||
local train = map_data.trains[train_id]
|
local train = map_data.trains[train_id]
|
||||||
local train_flag = get_network_flag(train, network_name)
|
local train_flag = get_network_mask(train, network_name)
|
||||||
if not btest(netand, train_flag) or train.se_is_being_teleported then
|
if not btest(netand, train_flag) or train.se_is_being_teleported then
|
||||||
goto train_continue
|
goto train_continue
|
||||||
end
|
end
|
||||||
@@ -551,9 +551,9 @@ local function tick_poll_station(map_data, mod_settings)
|
|||||||
station.locked_slots = mod_settings.locked_slots
|
station.locked_slots = mod_settings.locked_slots
|
||||||
local is_each = station.network_name == NETWORK_EACH
|
local is_each = station.network_name == NETWORK_EACH
|
||||||
if is_each then
|
if is_each then
|
||||||
station.network_flag = {}
|
station.network_mask = {}
|
||||||
else
|
else
|
||||||
station.network_flag = mod_settings.network_flag
|
station.network_mask = mod_settings.network_mask
|
||||||
end
|
end
|
||||||
local comb1_signals, comb2_signals = get_signals(station)
|
local comb1_signals, comb2_signals = get_signals(station)
|
||||||
station.tick_signals = comb1_signals
|
station.tick_signals = comb1_signals
|
||||||
@@ -594,12 +594,12 @@ local function tick_poll_station(map_data, mod_settings)
|
|||||||
elseif item_name == LOCKED_SLOTS then
|
elseif item_name == LOCKED_SLOTS then
|
||||||
station.locked_slots = max(item_count, 0)
|
station.locked_slots = max(item_count, 0)
|
||||||
elseif is_each then
|
elseif is_each then
|
||||||
station.network_flag[item_name] = item_count
|
station.network_mask[item_name] = item_count
|
||||||
end
|
end
|
||||||
comb1_signals[k] = nil
|
comb1_signals[k] = nil
|
||||||
end
|
end
|
||||||
if item_name == station.network_name then
|
if item_name == station.network_name then
|
||||||
station.network_flag = item_count
|
station.network_mask = item_count
|
||||||
comb1_signals[k] = nil
|
comb1_signals[k] = nil
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@@ -624,7 +624,7 @@ local function tick_poll_station(map_data, mod_settings)
|
|||||||
is_requesting_nothing = false
|
is_requesting_nothing = false
|
||||||
local f, a
|
local f, a
|
||||||
if station.network_name == NETWORK_EACH then
|
if station.network_name == NETWORK_EACH then
|
||||||
f, a = pairs(station.network_flag--[[@as {[string]: int}]])
|
f, a = pairs(station.network_mask--[[@as {[string]: int}]])
|
||||||
else
|
else
|
||||||
f, a = once, station.network_name
|
f, a = once, station.network_name
|
||||||
end
|
end
|
||||||
@@ -645,7 +645,7 @@ local function tick_poll_station(map_data, mod_settings)
|
|||||||
if station.is_p and effective_item_count > 0 and item_count > 0 then
|
if station.is_p and effective_item_count > 0 and item_count > 0 then
|
||||||
local f, a
|
local f, a
|
||||||
if station.network_name == NETWORK_EACH then
|
if station.network_name == NETWORK_EACH then
|
||||||
f, a = pairs(station.network_flag--[[@as {[string]: int}]])
|
f, a = pairs(station.network_mask--[[@as {[string]: int}]])
|
||||||
else
|
else
|
||||||
f, a = once, station.network_name
|
f, a = once, station.network_name
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -57,8 +57,8 @@ end
|
|||||||
---@param e Station|Refueler|Train
|
---@param e Station|Refueler|Train
|
||||||
---@param network_name string
|
---@param network_name string
|
||||||
---@return int
|
---@return int
|
||||||
function get_network_flag(e, network_name)
|
function get_network_mask(e, network_name)
|
||||||
return e.network_name == NETWORK_EACH and (e.network_flag[network_name] or 0) or e.network_flag--[[@as int]]
|
return e.network_name == NETWORK_EACH and (e.network_mask[network_name] or 0) or e.network_mask--[[@as int]]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@@ -400,9 +400,9 @@ function set_station_from_comb(station)
|
|||||||
if station.network_name ~= new_name then
|
if station.network_name ~= new_name then
|
||||||
station.network_name = new_name
|
station.network_name = new_name
|
||||||
if station.network_name == NETWORK_EACH then
|
if station.network_name == NETWORK_EACH then
|
||||||
station.network_flag = {}
|
station.network_mask = {}
|
||||||
else
|
else
|
||||||
station.network_flag = 0
|
station.network_mask = 0
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -426,9 +426,9 @@ function set_train_from_comb(mod_settings, train, comb)
|
|||||||
|
|
||||||
local is_each = train.network_name == NETWORK_EACH
|
local is_each = train.network_name == NETWORK_EACH
|
||||||
if is_each then
|
if is_each then
|
||||||
train.network_flag = {}
|
train.network_mask = {}
|
||||||
else
|
else
|
||||||
train.network_flag = mod_settings.network_flag
|
train.network_mask = mod_settings.network_mask
|
||||||
end
|
end
|
||||||
train.priority = mod_settings.priority
|
train.priority = mod_settings.priority
|
||||||
local signals = comb.get_merged_signals(defines.circuit_connector_id.combinator_input)
|
local signals = comb.get_merged_signals(defines.circuit_connector_id.combinator_input)
|
||||||
@@ -443,12 +443,12 @@ function set_train_from_comb(mod_settings, train, comb)
|
|||||||
train.priority = item_count
|
train.priority = item_count
|
||||||
elseif is_each then
|
elseif is_each then
|
||||||
if item_name ~= REQUEST_THRESHOLD and item_name ~= LOCKED_SLOTS then
|
if item_name ~= REQUEST_THRESHOLD and item_name ~= LOCKED_SLOTS then
|
||||||
train.network_flag[item_name] = item_count
|
train.network_mask[item_name] = item_count
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if item_name == network_name then
|
if item_name == network_name then
|
||||||
train.network_flag = item_count
|
train.network_mask = item_count
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -464,7 +464,7 @@ function set_refueler_from_comb(map_data, mod_settings, id, refueler)
|
|||||||
local bits = params.second_constant or 0
|
local bits = params.second_constant or 0
|
||||||
local signal = params.first_signal
|
local signal = params.first_signal
|
||||||
local old_network = refueler.network_name
|
local old_network = refueler.network_name
|
||||||
local old_network_flag = refueler.network_flag
|
local old_network_mask = refueler.network_mask
|
||||||
|
|
||||||
refueler.network_name = signal and signal.name or nil
|
refueler.network_name = signal and signal.name or nil
|
||||||
refueler.allows_all_trains = bit_extract(bits, SETTING_DISABLE_ALLOW_LIST) > 0
|
refueler.allows_all_trains = bit_extract(bits, SETTING_DISABLE_ALLOW_LIST) > 0
|
||||||
@@ -473,10 +473,10 @@ function set_refueler_from_comb(map_data, mod_settings, id, refueler)
|
|||||||
local is_each = refueler.network_name == NETWORK_EACH
|
local is_each = refueler.network_name == NETWORK_EACH
|
||||||
if is_each then
|
if is_each then
|
||||||
map_data.each_refuelers[id] = true
|
map_data.each_refuelers[id] = true
|
||||||
refueler.network_flag = {}
|
refueler.network_mask = {}
|
||||||
else
|
else
|
||||||
map_data.each_refuelers[id] = nil
|
map_data.each_refuelers[id] = nil
|
||||||
refueler.network_flag = mod_settings.network_flag
|
refueler.network_mask = mod_settings.network_mask
|
||||||
end
|
end
|
||||||
|
|
||||||
local signals = refueler.entity_comb.get_merged_signals(DEFINES_COMBINATOR_INPUT)
|
local signals = refueler.entity_comb.get_merged_signals(DEFINES_COMBINATOR_INPUT)
|
||||||
@@ -491,12 +491,12 @@ function set_refueler_from_comb(map_data, mod_settings, id, refueler)
|
|||||||
refueler.priority = item_count
|
refueler.priority = item_count
|
||||||
elseif is_each then
|
elseif is_each then
|
||||||
if item_name ~= REQUEST_THRESHOLD and item_name ~= LOCKED_SLOTS then
|
if item_name ~= REQUEST_THRESHOLD and item_name ~= LOCKED_SLOTS then
|
||||||
refueler.network_flag[item_name] = item_count
|
refueler.network_mask[item_name] = item_count
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if item_name == refueler.network_name then
|
if item_name == refueler.network_name then
|
||||||
refueler.network_flag = item_count
|
refueler.network_mask = item_count
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -504,7 +504,7 @@ function set_refueler_from_comb(map_data, mod_settings, id, refueler)
|
|||||||
|
|
||||||
local f, a
|
local f, a
|
||||||
if old_network == NETWORK_EACH then
|
if old_network == NETWORK_EACH then
|
||||||
f, a = pairs(old_network_flag--[[@as {[string]: int}]])
|
f, a = pairs(old_network_mask--[[@as {[string]: int}]])
|
||||||
elseif old_network ~= refueler.network_name then
|
elseif old_network ~= refueler.network_name then
|
||||||
f, a = once, old_network
|
f, a = once, old_network
|
||||||
else
|
else
|
||||||
@@ -521,7 +521,7 @@ function set_refueler_from_comb(map_data, mod_settings, id, refueler)
|
|||||||
end
|
end
|
||||||
|
|
||||||
if refueler.network_name == NETWORK_EACH then
|
if refueler.network_name == NETWORK_EACH then
|
||||||
f, a = pairs(refueler.network_flag--[[@as {[string]: int}]])
|
f, a = pairs(refueler.network_mask--[[@as {[string]: int}]])
|
||||||
elseif old_network ~= refueler.network_name then
|
elseif old_network ~= refueler.network_name then
|
||||||
f, a = once, refueler.network_name
|
f, a = once, refueler.network_name
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -42,7 +42,7 @@
|
|||||||
---@field public r_threshold int >= 0 --transient
|
---@field public r_threshold int >= 0 --transient
|
||||||
---@field public locked_slots int >= 0 --transient
|
---@field public locked_slots int >= 0 --transient
|
||||||
---@field public network_name string?
|
---@field public network_name string?
|
||||||
---@field public network_flag int|{[string]: int} --transient
|
---@field public network_mask int|{[string]: int} --transient
|
||||||
---@field public wagon_combs {[int]: LuaEntity}?--NOTE: allowed to be invalid entities or combinators with the wrong operation, these must be checked and lazy deleted when found
|
---@field public wagon_combs {[int]: LuaEntity}?--NOTE: allowed to be invalid entities or combinators with the wrong operation, these must be checked and lazy deleted when found
|
||||||
---@field public deliveries {[string]: int}
|
---@field public deliveries {[string]: int}
|
||||||
---@field public accepted_layouts {[uint]: true?}
|
---@field public accepted_layouts {[uint]: true?}
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
---@field public allows_all_trains true?
|
---@field public allows_all_trains true?
|
||||||
---@field public priority int
|
---@field public priority int
|
||||||
---@field public network_name string?
|
---@field public network_name string?
|
||||||
---@field public network_flag int|{[string]: int}
|
---@field public network_mask int|{[string]: int}
|
||||||
|
|
||||||
---@class Train
|
---@class Train
|
||||||
---@field public entity LuaTrain --should only be invalid if se_is_being_teleported is true
|
---@field public entity LuaTrain --should only be invalid if se_is_being_teleported is true
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
---@field public use_any_depot true?
|
---@field public use_any_depot true?
|
||||||
---@field public disable_bypass true?
|
---@field public disable_bypass true?
|
||||||
---@field public network_name string? --can only be nil when the train is parked at a depot
|
---@field public network_name string? --can only be nil when the train is parked at a depot
|
||||||
---@field public network_flag int|{[string]: int} --transient
|
---@field public network_mask int|{[string]: int} --transient
|
||||||
---@field public priority int
|
---@field public priority int
|
||||||
---@field public refueler_id uint?
|
---@field public refueler_id uint?
|
||||||
---@field public se_is_being_teleported true? --se only
|
---@field public se_is_being_teleported true? --se only
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
---@field public r_threshold int
|
---@field public r_threshold int
|
||||||
---@field public priority int
|
---@field public priority int
|
||||||
---@field public locked_slots int
|
---@field public locked_slots int
|
||||||
---@field public network_flag int
|
---@field public network_mask int
|
||||||
---@field public warmup_time double
|
---@field public warmup_time double
|
||||||
---@field public stuck_train_time double
|
---@field public stuck_train_time double
|
||||||
---@field public fuel_threshold double
|
---@field public fuel_threshold double
|
||||||
@@ -125,7 +125,7 @@
|
|||||||
---@field public react_to_train_at_incorrect_station boolean --interface setting
|
---@field public react_to_train_at_incorrect_station boolean --interface setting
|
||||||
---@field public react_to_train_early_to_depot boolean --interface setting
|
---@field public react_to_train_early_to_depot boolean --interface setting
|
||||||
---@field public enable_manager boolean
|
---@field public enable_manager boolean
|
||||||
---@field public manager_update_rate int
|
---@field public manager_ups double
|
||||||
|
|
||||||
--if this is uncommented it means there are migrations to write
|
--if this is uncommented it means there are migrations to write
|
||||||
|
|
||||||
|
|||||||
@@ -61,12 +61,9 @@ function inventory_tab.build(map_data, player_data)
|
|||||||
end
|
end
|
||||||
-- move surface comparison up higher in query to short circuit query earlier if surface doesn't match
|
-- move surface comparison up higher in query to short circuit query earlier if surface doesn't match
|
||||||
if search_surface_idx then
|
if search_surface_idx then
|
||||||
if search_surface_idx == -1 then
|
if entity.surface.index ~= search_surface_idx then
|
||||||
goto has_match
|
|
||||||
elseif entity.surface.index ~= search_surface_idx then
|
|
||||||
goto continue
|
goto continue
|
||||||
end
|
end
|
||||||
::has_match::
|
|
||||||
end
|
end
|
||||||
if search_network_name then
|
if search_network_name then
|
||||||
if search_network_name == (NETWORK_EACH or NETWORK_ANYTHING) then
|
if search_network_name == (NETWORK_EACH or NETWORK_ANYTHING) then
|
||||||
@@ -76,21 +73,21 @@ function inventory_tab.build(map_data, player_data)
|
|||||||
goto continue
|
goto continue
|
||||||
end
|
end
|
||||||
::has_match::
|
::has_match::
|
||||||
local train_flag = get_network_flag(station, station.network_name)
|
local train_flag = get_network_mask(station, station.network_name)
|
||||||
if not bit32.btest(search_network_mask, train_flag) then
|
if not bit32.btest(search_network_mask, train_flag) then
|
||||||
goto continue
|
goto continue
|
||||||
end
|
end
|
||||||
elseif search_network_mask ~= -1 then
|
elseif search_network_mask ~= -1 then
|
||||||
if station.network_name == NETWORK_EACH then
|
if station.network_name == NETWORK_EACH then
|
||||||
local masks = station.network_flag--[[@as {}]]
|
local masks = station.network_mask--[[@as {}]]
|
||||||
for _, network_flag in pairs(masks) do
|
for _, network_mask in pairs(masks) do
|
||||||
if bit32.btest(search_network_mask, network_flag) then
|
if bit32.btest(search_network_mask, network_mask) then
|
||||||
goto has_match
|
goto has_match
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
goto continue
|
goto continue
|
||||||
::has_match::
|
::has_match::
|
||||||
elseif not bit32.btest(search_network_mask, station.network_flag) then
|
elseif not bit32.btest(search_network_mask, station.network_mask) then
|
||||||
goto continue
|
goto continue
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ local manager = require("scripts.gui.manager")
|
|||||||
|
|
||||||
--- @class PlayerData
|
--- @class PlayerData
|
||||||
--- @field is_manager_open boolean
|
--- @field is_manager_open boolean
|
||||||
--- @field refs {[string]: LuaGuiElement}?
|
--- @field refs {[string]: LuaGuiElement}
|
||||||
--- @field search_query string?
|
--- @field search_query string?
|
||||||
--- @field search_network_name string?
|
--- @field search_network_name string?
|
||||||
--- @field search_network_mask int
|
--- @field search_network_mask int
|
||||||
@@ -63,6 +63,7 @@ function manager_gui.on_player_created(e)
|
|||||||
trains_orderings_invert = {},
|
trains_orderings_invert = {},
|
||||||
pinning = false,
|
pinning = false,
|
||||||
refs = manager.create(player),
|
refs = manager.create(player),
|
||||||
|
selected_tab = "stations_tab",
|
||||||
}
|
}
|
||||||
global.manager.players[e.player_index] = player_data
|
global.manager.players[e.player_index] = player_data
|
||||||
|
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ function manager.create(player)
|
|||||||
name = "manager_text_search_field",
|
name = "manager_text_search_field",
|
||||||
type = "textfield",
|
type = "textfield",
|
||||||
clear_and_focus_on_right_click = true,
|
clear_and_focus_on_right_click = true,
|
||||||
handler = manager.handle.manager_update_text_search, --on_gui_text_changed
|
handler = { [defines.events.on_gui_text_changed] = manager.handle.manager_update_text_search },
|
||||||
},
|
},
|
||||||
{ type = "label", style = "subheader_caption_label", caption = { "cybersyn-gui.search-item-label" } },
|
{ type = "label", style = "subheader_caption_label", caption = { "cybersyn-gui.search-item-label" } },
|
||||||
{ type= "choose-elem-button", name="manager_item_filter", style="slot_button_in_shallow_frame", elem_type="signal", handler=manager.handle.manager_update_item_search, },
|
{ type= "choose-elem-button", name="manager_item_filter", style="slot_button_in_shallow_frame", elem_type="signal", handler=manager.handle.manager_update_item_search, },
|
||||||
@@ -83,13 +83,13 @@ function manager.create(player)
|
|||||||
allow_negative = true,
|
allow_negative = true,
|
||||||
clear_and_focus_on_right_click = true,
|
clear_and_focus_on_right_click = true,
|
||||||
text = "-1",
|
text = "-1",
|
||||||
handler = manager.handle.manager_update_network_mask, --on_gui_text_changed
|
handler = { [defines.events.on_gui_text_changed] = manager.handle.manager_update_network_mask },
|
||||||
},
|
},
|
||||||
{ type = "label", style = "caption_label", caption = { "cybersyn-gui.surface-label" } },
|
{ type = "label", style = "caption_label", caption = { "cybersyn-gui.surface-label" } },
|
||||||
{
|
{
|
||||||
name = "manager_surface_dropdown",
|
name = "manager_surface_dropdown",
|
||||||
type = "drop-down",
|
type = "drop-down",
|
||||||
handler = manager.handle.manager_update_surface, --on_gui_selection_state_changed
|
handler = { [defines.events.on_gui_selection_state_changed] = manager.handle.manager_update_surface },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -116,13 +116,13 @@ function manager.create(player)
|
|||||||
return refs
|
return refs
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- @param player_data PlayerData
|
||||||
function manager.build(player_data)
|
function manager.build(player_data)
|
||||||
local refs = player_data.refs
|
local refs = player_data.refs
|
||||||
-- Surface dropdown
|
-- Surface dropdown
|
||||||
--- @type LuaGuiElement
|
--- @type LuaGuiElement
|
||||||
local surface_dropdown = refs.manager_surface_dropdown
|
local surface_dropdown = refs.manager_surface_dropdown
|
||||||
local surfaces = game.surfaces
|
local surfaces = game.surfaces
|
||||||
local selected_surface_id = player_data.search_surface_idx
|
|
||||||
local currently_selected_index = surface_dropdown.selected_index
|
local currently_selected_index = surface_dropdown.selected_index
|
||||||
local currently_selected_surface = nil
|
local currently_selected_surface = nil
|
||||||
if currently_selected_index ~= (nil or 0) then
|
if currently_selected_index ~= (nil or 0) then
|
||||||
@@ -130,26 +130,23 @@ function manager.build(player_data)
|
|||||||
end
|
end
|
||||||
surface_dropdown.clear_items()
|
surface_dropdown.clear_items()
|
||||||
surface_dropdown.add_item("all", 1)
|
surface_dropdown.add_item("all", 1)
|
||||||
i = 1
|
local i = 1
|
||||||
for name, _ in pairs(surfaces) do
|
for name, _ in pairs(surfaces) do
|
||||||
i = i + 1
|
i = i + 1
|
||||||
surface_dropdown.add_item(name, i)
|
surface_dropdown.add_item(name, i)
|
||||||
--reselect same surface
|
--reselect same surface
|
||||||
if name == currently_selected_surface then
|
if name == currently_selected_surface then
|
||||||
refs.manager_surface_dropdown.selected_index = i
|
refs.manager_surface_dropdown.selected_index = i--[[@as uint]]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- Validate that the selected index still exist
|
-- Validate that the selected index still exist
|
||||||
if selected_surface_id then
|
if player_data.search_surface_idx then
|
||||||
local selected_surface = game.get_surface(selected_surface_id)
|
local selected_surface = game.get_surface(player_data.search_surface_idx)
|
||||||
-- If the surface was invalidated since last update, reset to all
|
-- If the surface was invalidated since last update, reset to all
|
||||||
if not selected_surface then
|
if not selected_surface then
|
||||||
player_data.search_surface_idx = -1
|
player_data.search_surface_idx = nil
|
||||||
end
|
end
|
||||||
else
|
|
||||||
player_data.search_surface_idx = -1
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
--- @param map_data MapData
|
--- @param map_data MapData
|
||||||
@@ -271,7 +268,8 @@ end
|
|||||||
--- @param e GuiEventData
|
--- @param e GuiEventData
|
||||||
function manager.handle.manager_update_item_search(player, player_data, refs, e)
|
function manager.handle.manager_update_item_search(player, player_data, refs, e)
|
||||||
local element = e.element
|
local element = e.element
|
||||||
local signal = element.elem_value
|
if not element then return end
|
||||||
|
local signal = e.element.elem_value
|
||||||
if signal then
|
if signal then
|
||||||
player_data.search_item = signal.name
|
player_data.search_item = signal.name
|
||||||
else
|
else
|
||||||
@@ -283,8 +281,10 @@ end
|
|||||||
--- @param player LuaPlayer
|
--- @param player LuaPlayer
|
||||||
--- @param player_data PlayerData
|
--- @param player_data PlayerData
|
||||||
--- @param refs table<string, LuaGuiElement>
|
--- @param refs table<string, LuaGuiElement>
|
||||||
|
--- @param e GuiEventData
|
||||||
function manager.handle.manager_update_network_name(player, player_data, refs, e)
|
function manager.handle.manager_update_network_name(player, player_data, refs, e)
|
||||||
local element = e.element
|
local element = e.element
|
||||||
|
if not element then return end
|
||||||
local signal = element.elem_value
|
local signal = element.elem_value
|
||||||
if signal then
|
if signal then
|
||||||
player_data.search_network_name = signal.name
|
player_data.search_network_name = signal.name
|
||||||
@@ -295,24 +295,29 @@ end
|
|||||||
--- @param player LuaPlayer
|
--- @param player LuaPlayer
|
||||||
--- @param player_data PlayerData
|
--- @param player_data PlayerData
|
||||||
--- @param refs table<string, LuaGuiElement>
|
--- @param refs table<string, LuaGuiElement>
|
||||||
|
--- @param e GuiEventData
|
||||||
function manager.handle.manager_update_network_mask(player, player_data, refs, e)
|
function manager.handle.manager_update_network_mask(player, player_data, refs, e)
|
||||||
player_data.search_network_mask = tonumber(e.text) or -1
|
player_data.search_network_mask = tonumber(e.text) or -1
|
||||||
|
e.text = tostring(player_data.search_network_mask)
|
||||||
end
|
end
|
||||||
--- @param player LuaPlayer
|
--- @param player LuaPlayer
|
||||||
--- @param player_data PlayerData
|
--- @param player_data PlayerData
|
||||||
--- @param refs table<string, LuaGuiElement>
|
--- @param refs table<string, LuaGuiElement>
|
||||||
|
--- @param e GuiEventData
|
||||||
function manager.handle.manager_update_surface(player, player_data, refs, e)
|
function manager.handle.manager_update_surface(player, player_data, refs, e)
|
||||||
--- @type LuaGuiElement
|
|
||||||
local element = e.element
|
local element = e.element
|
||||||
|
if not element then return end
|
||||||
local i = element.selected_index
|
local i = element.selected_index
|
||||||
local refs = player_data.refs
|
---@type uint?
|
||||||
local surface_id = -1
|
local surface_id = nil
|
||||||
--all surfaces should always be the first entry with an index of 1
|
--all surfaces should always be the first entry with an index of 1
|
||||||
if i > 1 then
|
if i > 1 then
|
||||||
local surface_name = refs.manager_surface_dropdown.get_item(i)
|
local surface_name = refs.manager_surface_dropdown.get_item(i)
|
||||||
local surface = game.get_surface(surface_name)
|
local surface = game.get_surface(surface_name)
|
||||||
|
if surface then
|
||||||
surface_id = surface.index
|
surface_id = surface.index
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
player_data.search_surface_idx = surface_id
|
player_data.search_surface_idx = surface_id
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -56,7 +56,6 @@ end
|
|||||||
|
|
||||||
--- @param map_data MapData
|
--- @param map_data MapData
|
||||||
--- @param player_data PlayerData
|
--- @param player_data PlayerData
|
||||||
--- @return GuiElemDef
|
|
||||||
function stations_tab.build(map_data, player_data, query_limit)
|
function stations_tab.build(map_data, player_data, query_limit)
|
||||||
|
|
||||||
local widths = constants.gui["en"]
|
local widths = constants.gui["en"]
|
||||||
@@ -102,21 +101,21 @@ function stations_tab.build(map_data, player_data, query_limit)
|
|||||||
if search_network_name ~= station.network_name then
|
if search_network_name ~= station.network_name then
|
||||||
goto continue
|
goto continue
|
||||||
end
|
end
|
||||||
local train_flag = get_network_flag(station, station.network_name)
|
local train_flag = get_network_mask(station, station.network_name)
|
||||||
if not bit32.btest(search_network_mask, train_flag) then
|
if not bit32.btest(search_network_mask, train_flag) then
|
||||||
goto continue
|
goto continue
|
||||||
end
|
end
|
||||||
elseif search_network_mask ~= -1 then
|
elseif search_network_mask ~= -1 then
|
||||||
if station.network_name == NETWORK_EACH then
|
if station.network_name == NETWORK_EACH then
|
||||||
local masks = station.network_flag--[[@as {}]]
|
local masks = station.network_mask--[[@as {}]]
|
||||||
for _, network_flag in pairs(masks) do
|
for _, network_mask in pairs(masks) do
|
||||||
if bit32.btest(search_network_mask, network_flag) then
|
if bit32.btest(search_network_mask, network_mask) then
|
||||||
goto has_match
|
goto has_match
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
goto continue
|
goto continue
|
||||||
::has_match::
|
::has_match::
|
||||||
elseif not bit32.btest(search_network_mask, station.network_flag) then
|
elseif not bit32.btest(search_network_mask, station.network_mask) then
|
||||||
goto continue
|
goto continue
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -224,8 +223,9 @@ function stations_tab.build(map_data, player_data, query_limit)
|
|||||||
local station = stations[station_id]
|
local station = stations[station_id]
|
||||||
local network_sprite = "utility/close_black"
|
local network_sprite = "utility/close_black"
|
||||||
local network_name = station.network_name
|
local network_name = station.network_name
|
||||||
local network_flag = get_network_flag(station, network_name)
|
local network_mask = -1;
|
||||||
if network_name ~= nil then
|
if network_name then
|
||||||
|
network_mask = get_network_mask(station, network_name)
|
||||||
network_sprite, _, _ = util.generate_item_references(network_name)
|
network_sprite, _, _ = util.generate_item_references(network_name)
|
||||||
end
|
end
|
||||||
local color = i % 2 == 0 and "dark" or "light"
|
local color = i % 2 == 0 and "dark" or "light"
|
||||||
@@ -242,7 +242,7 @@ function stations_tab.build(map_data, player_data, query_limit)
|
|||||||
},
|
},
|
||||||
--templates.status_indicator(widths.stations.status, true), --repurposing status column for network name
|
--templates.status_indicator(widths.stations.status, true), --repurposing status column for network name
|
||||||
{ type = "sprite-button", style = "ltnm_small_slot_button_default", enabled = false, sprite = network_sprite, },
|
{ type = "sprite-button", style = "ltnm_small_slot_button_default", enabled = false, sprite = network_sprite, },
|
||||||
{ type = "label", style_mods = { width = widths.stations.network_id, horizontal_align = "center" }, caption = network_flag },
|
{ type = "label", style_mods = { width = widths.stations.network_id, horizontal_align = "center" }, caption = network_mask },
|
||||||
templates.small_slot_table(widths.stations, color, "provided_requested"),
|
templates.small_slot_table(widths.stations, color, "provided_requested"),
|
||||||
templates.small_slot_table(widths.stations, color, "shipments"),
|
templates.small_slot_table(widths.stations, color, "shipments"),
|
||||||
templates.small_slot_table(widths.stations, color, "control_signals"),
|
templates.small_slot_table(widths.stations, color, "control_signals"),
|
||||||
|
|||||||
@@ -47,7 +47,6 @@ end
|
|||||||
|
|
||||||
--- @param map_data MapData
|
--- @param map_data MapData
|
||||||
--- @param player_data PlayerData
|
--- @param player_data PlayerData
|
||||||
--- @return GuiElemDef
|
|
||||||
function trains_tab.build(map_data, player_data, query_limit)
|
function trains_tab.build(map_data, player_data, query_limit)
|
||||||
local widths = constants.gui["en"]
|
local widths = constants.gui["en"]
|
||||||
local refs = player_data.refs
|
local refs = player_data.refs
|
||||||
@@ -73,29 +72,26 @@ function trains_tab.build(map_data, player_data, query_limit)
|
|||||||
if search_network_name ~= train.network_name then
|
if search_network_name ~= train.network_name then
|
||||||
goto continue
|
goto continue
|
||||||
end
|
end
|
||||||
local train_flag = get_network_flag(train, search_network_name)
|
local train_flag = get_network_mask(train, search_network_name)
|
||||||
if not bit32.btest(search_network_mask, train_flag) then
|
if not bit32.btest(search_network_mask, train_flag) then
|
||||||
goto continue
|
goto continue
|
||||||
end
|
end
|
||||||
elseif search_network_mask ~= -1 then
|
elseif search_network_mask ~= -1 then
|
||||||
if train.network_name == NETWORK_EACH then
|
if train.network_name == NETWORK_EACH then
|
||||||
local masks = train.network_flag--[[@as {}]]
|
local masks = train.network_mask--[[@as {}]]
|
||||||
for _, network_flag in pairs(masks) do
|
for _, network_mask in pairs(masks) do
|
||||||
if bit32.btest(search_network_mask, network_flag) then
|
if bit32.btest(search_network_mask, network_mask) then
|
||||||
goto has_match
|
goto has_match
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
goto continue
|
goto continue
|
||||||
::has_match::
|
::has_match::
|
||||||
elseif not bit32.btest(search_network_mask, train.network_flag) then
|
elseif not bit32.btest(search_network_mask, train.network_mask) then
|
||||||
goto continue
|
goto continue
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if search_surface_idx then
|
if search_surface_idx then
|
||||||
if search_surface_idx == -1 then
|
|
||||||
goto has_match
|
|
||||||
end
|
|
||||||
local entity = get_any_train_entity(train.entity)
|
local entity = get_any_train_entity(train.entity)
|
||||||
if not entity then
|
if not entity then
|
||||||
goto continue
|
goto continue
|
||||||
@@ -103,7 +99,6 @@ function trains_tab.build(map_data, player_data, query_limit)
|
|||||||
if entity.surface.index ~= search_surface_idx then
|
if entity.surface.index ~= search_surface_idx then
|
||||||
goto continue
|
goto continue
|
||||||
end
|
end
|
||||||
::has_match::
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if search_item then
|
if search_item then
|
||||||
@@ -203,14 +198,17 @@ function trains_tab.build(map_data, player_data, query_limit)
|
|||||||
else
|
else
|
||||||
locomotive = train_entity.locomotives["back_movers"][1]
|
locomotive = train_entity.locomotives["back_movers"][1]
|
||||||
end
|
end
|
||||||
local manifest = {}
|
local manifest = train.manifest
|
||||||
if train.manifest ~= nil then
|
|
||||||
manifest = train.manifest
|
|
||||||
end
|
|
||||||
local network_sprite = "utility/close_black"
|
local network_sprite = "utility/close_black"
|
||||||
local network_name = train.network_name
|
local network_name = train.network_name
|
||||||
local network_id = train.network_flag
|
---@type int?
|
||||||
|
local network_id = nil
|
||||||
if network_name then
|
if network_name then
|
||||||
|
if network_name == NETWORK_EACH then
|
||||||
|
network_id = train.network_mask[search_network_name]--[[@as int?]]
|
||||||
|
else
|
||||||
|
network_id = train.network_mask--[[@as int]]
|
||||||
|
end
|
||||||
network_sprite, _, _ = util.generate_item_references(network_name)
|
network_sprite, _, _ = util.generate_item_references(network_name)
|
||||||
end
|
end
|
||||||
local color = idx % 2 == 0 and "dark" or "light"
|
local color = idx % 2 == 0 and "dark" or "light"
|
||||||
@@ -290,7 +288,7 @@ function trains_tab.handle.open_train_gui(player, player_data, refs, e)
|
|||||||
local train_entity = train.entity
|
local train_entity = train.entity
|
||||||
|
|
||||||
if not train_entity or not train_entity.valid then
|
if not train_entity or not train_entity.valid then
|
||||||
util.error_flying_text(gui.player, { "message.ltnm-error-train-is-invalid" })
|
util.error_flying_text(player, { "message.ltnm-error-train-is-invalid" })
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
train_util.open_gui(player.index, train_entity)
|
train_util.open_gui(player.index, train_entity)
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ end
|
|||||||
|
|
||||||
|
|
||||||
--- Updates a slot table based on the passed criteria.
|
--- Updates a slot table based on the passed criteria.
|
||||||
--- @param manifest Manifest
|
--- @param manifest Manifest?
|
||||||
--- @param color string
|
--- @param color string
|
||||||
--- @return GuiElemDef[]
|
--- @return GuiElemDef[]
|
||||||
function util.slot_table_build_from_manifest(manifest, color)
|
function util.slot_table_build_from_manifest(manifest, color)
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ local function on_refueler_built(map_data, stop, comb)
|
|||||||
--allows_all_trains = set_refueler_from_comb,
|
--allows_all_trains = set_refueler_from_comb,
|
||||||
--priority = set_refueler_from_comb,
|
--priority = set_refueler_from_comb,
|
||||||
--network_name = set_refueler_from_comb,
|
--network_name = set_refueler_from_comb,
|
||||||
--network_flag = set_refueler_from_comb,
|
--network_mask = set_refueler_from_comb,
|
||||||
}
|
}
|
||||||
local id = stop.unit_number--[[@as uint]]
|
local id = stop.unit_number--[[@as uint]]
|
||||||
map_data.refuelers[id] = refueler
|
map_data.refuelers[id] = refueler
|
||||||
@@ -94,7 +94,7 @@ function on_refueler_broken(map_data, refueler_id, refueler)
|
|||||||
end
|
end
|
||||||
local f, a
|
local f, a
|
||||||
if refueler.network_name == NETWORK_EACH then
|
if refueler.network_name == NETWORK_EACH then
|
||||||
f, a = pairs(refueler.network_flag--[[@as {[string]: int}]])
|
f, a = pairs(refueler.network_mask--[[@as {[string]: int}]])
|
||||||
else
|
else
|
||||||
f, a = once, refueler.network_name
|
f, a = once, refueler.network_name
|
||||||
end
|
end
|
||||||
@@ -133,7 +133,7 @@ local function on_station_built(map_data, stop, comb1, comb2)
|
|||||||
r_threshold = 0,
|
r_threshold = 0,
|
||||||
locked_slots = 0,
|
locked_slots = 0,
|
||||||
--network_name = set_station_from_comb,
|
--network_name = set_station_from_comb,
|
||||||
network_flag = 0,
|
network_mask = 0,
|
||||||
wagon_combs = nil,
|
wagon_combs = nil,
|
||||||
deliveries = {},
|
deliveries = {},
|
||||||
accepted_layouts = {},
|
accepted_layouts = {},
|
||||||
@@ -752,7 +752,7 @@ local function setup_se_compat()
|
|||||||
if train.is_available then
|
if train.is_available then
|
||||||
local f, a
|
local f, a
|
||||||
if train.network_name == NETWORK_EACH then
|
if train.network_name == NETWORK_EACH then
|
||||||
f, a = next, train.network_flag
|
f, a = next, train.network_mask
|
||||||
else
|
else
|
||||||
f, a = once, train.network_name
|
f, a = once, train.network_name
|
||||||
end
|
end
|
||||||
@@ -836,26 +836,34 @@ local function grab_all_settings()
|
|||||||
mod_settings.r_threshold = settings.global["cybersyn-request-threshold"].value--[[@as int]]
|
mod_settings.r_threshold = settings.global["cybersyn-request-threshold"].value--[[@as int]]
|
||||||
mod_settings.priority = settings.global["cybersyn-priority"].value--[[@as int]]
|
mod_settings.priority = settings.global["cybersyn-priority"].value--[[@as int]]
|
||||||
mod_settings.locked_slots = settings.global["cybersyn-locked-slots"].value--[[@as int]]
|
mod_settings.locked_slots = settings.global["cybersyn-locked-slots"].value--[[@as int]]
|
||||||
mod_settings.network_flag = settings.global["cybersyn-network-flag"].value--[[@as int]]
|
mod_settings.network_mask = settings.global["cybersyn-network-flag"].value--[[@as int]]
|
||||||
mod_settings.fuel_threshold = settings.global["cybersyn-fuel-threshold"].value--[[@as double]]
|
mod_settings.fuel_threshold = settings.global["cybersyn-fuel-threshold"].value--[[@as double]]
|
||||||
mod_settings.warmup_time = settings.global["cybersyn-warmup-time"].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.stuck_train_time = settings.global["cybersyn-stuck-train-time"].value--[[@as double]]
|
||||||
mod_settings.allow_cargo_in_depot = settings.global["cybersyn-allow-cargo-in-depot"].value--[[@as boolean]]
|
mod_settings.allow_cargo_in_depot = settings.global["cybersyn-allow-cargo-in-depot"].value--[[@as boolean]]
|
||||||
mod_settings.invert_sign = settings.global["cybersyn-invert-sign"].value--[[@as boolean]]
|
mod_settings.invert_sign = settings.global["cybersyn-invert-sign"].value--[[@as boolean]]
|
||||||
|
mod_settings.manager_ups = settings.global["cybersyn-manager-updates-per-second"].value--[[@as int]]
|
||||||
mod_settings.manager_enabled = settings.startup["cybersyn-manager-enabled"].value--[[@as boolean]]
|
mod_settings.manager_enabled = settings.startup["cybersyn-manager-enabled"].value--[[@as boolean]]
|
||||||
mod_settings.manager_update_rate = settings.startup["cybersyn-manager-update-rate"].value--[[@as int]]
|
end
|
||||||
|
local function register_tick()
|
||||||
|
script.on_nth_tick(nil)
|
||||||
|
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()
|
||||||
|
tick(global, mod_settings)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
if mod_settings.manager_enabled and mod_settings.manager_ups > DELTA then
|
||||||
|
local nth_tick_manager = ceil(60/mod_settings.manager_ups)--[[@as uint]]
|
||||||
|
script.on_nth_tick(nth_tick_manager, function()
|
||||||
|
manager.tick(global)
|
||||||
|
end)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
local function on_settings_changed(event)
|
local function on_settings_changed(event)
|
||||||
grab_all_settings()
|
grab_all_settings()
|
||||||
if event.setting == "cybersyn-ticks-per-second" then
|
if event.setting == "cybersyn-ticks-per-second" or event.setting == "cybersyn-manager-updates-per-second" then
|
||||||
if mod_settings.tps > DELTA then
|
register_tick()
|
||||||
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
|
|
||||||
end
|
end
|
||||||
manager.on_runtime_mod_setting_changed(event)
|
manager.on_runtime_mod_setting_changed(event)
|
||||||
interface_raise_on_mod_settings_changed(event)
|
interface_raise_on_mod_settings_changed(event)
|
||||||
@@ -912,15 +920,6 @@ local function main()
|
|||||||
|
|
||||||
register_gui_actions()
|
register_gui_actions()
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
local MANAGER_ENABLED = mod_settings.manager_enabled
|
local MANAGER_ENABLED = mod_settings.manager_enabled
|
||||||
|
|
||||||
@@ -955,12 +954,9 @@ local function main()
|
|||||||
script.on_event(defines.events.on_player_created, manager.on_player_created)
|
script.on_event(defines.events.on_player_created, manager.on_player_created)
|
||||||
script.on_event(defines.events.on_lua_shortcut, manager.on_lua_shortcut)
|
script.on_event(defines.events.on_lua_shortcut, manager.on_lua_shortcut)
|
||||||
script.on_event("cybersyn-toggle-gui", manager.on_lua_shortcut)
|
script.on_event("cybersyn-toggle-gui", manager.on_lua_shortcut)
|
||||||
-- TODO: rework this to work as a per-player runtime setting
|
|
||||||
script.on_nth_tick(mod_settings.manager_update_rate, function()
|
|
||||||
manager.tick(global)
|
|
||||||
end)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
register_tick()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -295,16 +295,35 @@ local migrations_table = {
|
|||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
["1.2.14"] = function()
|
["1.2.14"] = function()
|
||||||
|
---@type MapData
|
||||||
|
local map_data = global
|
||||||
|
|
||||||
manager_gui.on_init()
|
manager_gui.on_init()
|
||||||
for i, v in pairs(game.players) do
|
for i, v in pairs(game.players) do
|
||||||
manager_gui.on_player_created({player_index = i})
|
manager_gui.on_player_created({player_index = i})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
for _, e in pairs(map_data.refuelers) do
|
||||||
|
e.network_mask = e.network_flag
|
||||||
|
e.network_flag = nil
|
||||||
|
end
|
||||||
|
for _, e in pairs(map_data.stations) do
|
||||||
|
e.network_mask = e.network_flag
|
||||||
|
e.network_flag = nil
|
||||||
|
end
|
||||||
|
for _, e in pairs(map_data.trains) do
|
||||||
|
e.network_mask = e.network_flag
|
||||||
|
e.network_flag = nil
|
||||||
|
end
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
--STATUS_R_TO_D = 5
|
--STATUS_R_TO_D = 5
|
||||||
|
|
||||||
---@param data ConfigurationChangedData
|
---@param data ConfigurationChangedData
|
||||||
function on_config_changed(data)
|
function on_config_changed(data)
|
||||||
|
for i, v in pairs(game.players) do
|
||||||
|
manager_gui.reset_player(i, v)
|
||||||
|
end
|
||||||
global.tick_state = STATE_INIT
|
global.tick_state = STATE_INIT
|
||||||
global.tick_data = {}
|
global.tick_data = {}
|
||||||
flib_migration.on_config_changed(data, migrations_table)
|
flib_migration.on_config_changed(data, migrations_table)
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ function add_available_train(map_data, train_id, train)
|
|||||||
if train.network_name then
|
if train.network_name then
|
||||||
local f, a
|
local f, a
|
||||||
if train.network_name == NETWORK_EACH then
|
if train.network_name == NETWORK_EACH then
|
||||||
f, a = next, train.network_flag
|
f, a = next, train.network_mask
|
||||||
else
|
else
|
||||||
f, a = once, train.network_name
|
f, a = once, train.network_name
|
||||||
end
|
end
|
||||||
@@ -121,7 +121,7 @@ function remove_available_train(map_data, train_id, train)
|
|||||||
train.is_available = nil
|
train.is_available = nil
|
||||||
local f, a
|
local f, a
|
||||||
if train.network_name == NETWORK_EACH then
|
if train.network_name == NETWORK_EACH then
|
||||||
f, a = next, train.network_flag
|
f, a = next, train.network_mask
|
||||||
else
|
else
|
||||||
f, a = once, train.network_name
|
f, a = once, train.network_name
|
||||||
end
|
end
|
||||||
@@ -195,7 +195,7 @@ local function on_train_arrives_depot(map_data, depot_id, depot, train_entity)
|
|||||||
--use_any_depot = add_available_train_to_depot,
|
--use_any_depot = add_available_train_to_depot,
|
||||||
--disable_bypass = add_available_train_to_depot,
|
--disable_bypass = add_available_train_to_depot,
|
||||||
--network_name = add_available_train_to_depot,
|
--network_name = add_available_train_to_depot,
|
||||||
--network_flag = add_available_train_to_depot,
|
--network_mask = add_available_train_to_depot,
|
||||||
--priority = add_available_train_to_depot,
|
--priority = add_available_train_to_depot,
|
||||||
}--[[@as Train]]
|
}--[[@as Train]]
|
||||||
set_train_layout(map_data, train)
|
set_train_layout(map_data, train)
|
||||||
@@ -311,7 +311,7 @@ local function on_train_leaves_stop(map_data, mod_settings, train_id, train)
|
|||||||
else
|
else
|
||||||
local f, a
|
local f, a
|
||||||
if train.network_name == NETWORK_EACH then
|
if train.network_name == NETWORK_EACH then
|
||||||
f, a = next, train.network_flag
|
f, a = next, train.network_mask
|
||||||
else
|
else
|
||||||
f, a = once, train.network_name
|
f, a = once, train.network_name
|
||||||
end
|
end
|
||||||
@@ -328,9 +328,9 @@ local function on_train_leaves_stop(map_data, mod_settings, train_id, train)
|
|||||||
else
|
else
|
||||||
set_refueler_from_comb(map_data, mod_settings, id, refueler)
|
set_refueler_from_comb(map_data, mod_settings, id, refueler)
|
||||||
|
|
||||||
local refueler_network_flag = get_network_flag(refueler, network_name)
|
local refueler_network_mask = get_network_mask(refueler, network_name)
|
||||||
local train_network_flag = get_network_flag(train, network_name)
|
local train_network_mask = get_network_mask(train, network_name)
|
||||||
if btest(train_network_flag, refueler_network_flag) and (refueler.allows_all_trains or refueler.accepted_layouts[train.layout_id]) and refueler.trains_total < refueler.entity_stop.trains_limit then
|
if btest(train_network_mask, refueler_network_mask) and (refueler.allows_all_trains or refueler.accepted_layouts[train.layout_id]) and refueler.trains_total < refueler.entity_stop.trains_limit then
|
||||||
if refueler.priority >= best_prior then
|
if refueler.priority >= best_prior then
|
||||||
local t = get_any_train_entity(train.entity)
|
local t = get_any_train_entity(train.entity)
|
||||||
local dist = t and get_dist(t, refueler.entity_stop) or INF
|
local dist = t and get_dist(t, refueler.entity_stop) or INF
|
||||||
|
|||||||
@@ -104,12 +104,12 @@ data:extend({
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
type = "int-setting",
|
type = "int-setting",
|
||||||
name = "cybersyn-manager-update-rate",
|
name = "cybersyn-manager-updates-per-second",
|
||||||
order = "ad",
|
order = "ad",
|
||||||
setting_type = "startup",
|
setting_type = "runtime-global",
|
||||||
default_value = 60,
|
default_value = 30,
|
||||||
minimum_value = 1,
|
minimum_value = 0,
|
||||||
maximum_value = 2147483647,
|
maximum_value = 60,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type = "bool-setting",
|
type = "bool-setting",
|
||||||
|
|||||||
Reference in New Issue
Block a user