Skip to content

Commit

Permalink
Fix global being renamed to storage
Browse files Browse the repository at this point in the history
  • Loading branch information
Danielv123 committed Nov 25, 2024
1 parent 721076e commit 53585b5
Show file tree
Hide file tree
Showing 13 changed files with 107 additions and 107 deletions.
2 changes: 1 addition & 1 deletion .luacheckrc
Original file line number Diff line number Diff line change
Expand Up @@ -460,7 +460,7 @@ do -- Factorio STDs--
-- @global@: The global dictionary, useful for storing data persistent across a save-load cycle.
-- Writing access is given to the mod-id field (for mod-wise saved data).
-- (http://lua-api.factorio.com/latest/Global.html)
"global",
"storage",

-- @MOD@: Keep it organized, use this variable for anything that "NEEDS" to be global for some reason.
"MOD"
Expand Down
92 changes: 46 additions & 46 deletions module/control.lua
Original file line number Diff line number Diff line change
Expand Up @@ -26,52 +26,52 @@ local universal_edges = {

local function setupGlobalData()
local GLOBAL_VERSION = 3
if global.universal_edges == nil
or global.universal_edges.GLOBAL_VERSION == nil
or global.universal_edges.GLOBAL_VERSION < GLOBAL_VERSION
if storage.universal_edges == nil
or storage.universal_edges.GLOBAL_VERSION == nil
or storage.universal_edges.GLOBAL_VERSION < GLOBAL_VERSION
then
-- Cleanup old global before resetting
if global.universal_edges and global.universal_edges.debug_shapes then
local debug_shapes = global.universal_edges.debug_shapes
if storage.universal_edges and storage.universal_edges.debug_shapes then
local debug_shapes = storage.universal_edges.debug_shapes
for index, id in ipairs(debug_shapes) do
if id.valid then id.destroy() end
debug_shapes[index] = nil
end
end

global.universal_edges = {
storage.universal_edges = {
edges = {},
debug_shapes = {},
config = {},
carriage_drivers = {},
GLOBAL_VERSION = GLOBAL_VERSION,
}
end
if not global.universal_edges.carriage_drivers then
global.universal_edges.carriage_drivers = {}
if not storage.universal_edges.carriage_drivers then
storage.universal_edges.carriage_drivers = {}
end
if not global.universal_edges.players_waiting_to_leave then
global.universal_edges.players_waiting_to_leave = {}
if not storage.universal_edges.players_waiting_to_leave then
storage.universal_edges.players_waiting_to_leave = {}
end
if not global.universal_edges.players_waiting_to_join then
global.universal_edges.players_waiting_to_join = {}
if not storage.universal_edges.players_waiting_to_join then
storage.universal_edges.players_waiting_to_join = {}
end
global.universal_edges = global.universal_edges
storage.universal_edges = storage.universal_edges
end


local function debug_draw()
local debug_shapes = global.universal_edges.debug_shapes
local debug_shapes = storage.universal_edges.debug_shapes
for index, id in ipairs(debug_shapes) do
if id.valid then id.destroy() end
debug_shapes[index] = nil
end

for id, edge in pairs(global.universal_edges.edges) do
for id, edge in pairs(storage.universal_edges.edges) do
local edge_target
if global.universal_edges.config.instance_id == edge.source.instanceId then
if storage.universal_edges.config.instance_id == edge.source.instanceId then
edge_target = edge.source
elseif global.universal_edges.config.instance_id == edge.target.instanceId then
elseif storage.universal_edges.config.instance_id == edge.target.instanceId then
edge_target = edge.target
else
log("Edge with id " .. id .. " has invalid source/target")
Expand Down Expand Up @@ -108,17 +108,17 @@ local function debug_draw()
end

function universal_edges.set_config(config)
if global.universal_edges.config == nil then global.universal_edges.config = {} end
global.universal_edges.config.instance_id = config.instance_id
if storage.universal_edges.config == nil then storage.universal_edges.config = {} end
storage.universal_edges.config.instance_id = config.instance_id
end

local function cleanup()
-- Filter out edges that do not have source or target on this instance
for id, edge in pairs(global.universal_edges.edges) do
if tostring(global.universal_edges.config.instance_id) ~= tostring(edge.source.instanceId)
and tostring(global.universal_edges.config.instance_id) ~= tostring(edge.target.instanceId)
for id, edge in pairs(storage.universal_edges.edges) do
if tostring(storage.universal_edges.config.instance_id) ~= tostring(edge.source.instanceId)
and tostring(storage.universal_edges.config.instance_id) ~= tostring(edge.target.instanceId)
then
global.universal_edges.edges[id] = nil
storage.universal_edges.edges[id] = nil
end
end
end
Expand All @@ -133,17 +133,17 @@ function universal_edges.edge_update(edge_id, edge_json)
if edge.isDeleted then
game.print("Deleting edge " .. edge_id)
-- Perform cleanup, remove edge
global.universal_edges.edges[edge_id] = nil
storage.universal_edges.edges[edge_id] = nil
debug_draw()
return
end
if global.universal_edges.edges[edge_id] == nil then
if storage.universal_edges.edges[edge_id] == nil then
game.print("Adding new edge " .. edge_id)
global.universal_edges.edges[edge_id] = edge
storage.universal_edges.edges[edge_id] = edge
active_status_has_changed = true
else
-- Do a partial update
local old_edge = global.universal_edges.edges[edge_id]
local old_edge = storage.universal_edges.edges[edge_id]
old_edge.updatedAtMs = edge.updatedAtMs
old_edge.source = edge.source
old_edge.target = edge.target
Expand Down Expand Up @@ -207,7 +207,7 @@ function universal_edges.edge_link_update(json)
if update == nil then return end

local data = update.data
local edge = global.universal_edges.edges[update.edge_id]
local edge = storage.universal_edges.edges[update.edge_id]
if not edge then
log("Got update for unknown edge " .. serpent.line(update))
return
Expand Down Expand Up @@ -245,7 +245,7 @@ function universal_edges.transfer(json)
local data = game.json_to_table(json)
if data == nil then return end

local edge = global.universal_edges.edges[data.edge_id]
local edge = storage.universal_edges.edges[data.edge_id]
if not edge then
rcon.print("invalid edge")
return
Expand Down Expand Up @@ -304,11 +304,11 @@ universal_edges.events = {
log("Universal edges startup")
setupGlobalData()
pathfinder_events.on_server_startup()
if not global.universal_edges.config.ticks_per_edge then
global.universal_edges.config.ticks_per_edge = 15
if not storage.universal_edges.config.ticks_per_edge then
storage.universal_edges.config.ticks_per_edge = 15
end
-- Refresh belt edge flow status in cases where the belt is not packed
for _, edge in pairs(global.universal_edges.edges) do
for _, edge in pairs(storage.universal_edges.edges) do
-- Active status is remembered from last shutdown, if its wrong this gets overwritten later
if edge.active and edge.linked_belts then
for _offset, link in pairs(edge.linked_belts) do
Expand All @@ -323,20 +323,20 @@ universal_edges.events = {
[defines.events.on_tick] = function(event)
universal_serializer.events.on_tick(event)
pathfinder_events.on_tick()
local ticks_left = -game.tick % global.universal_edges.config.ticks_per_edge
local id = global.universal_edges.current_edge_id
local ticks_left = -game.tick % storage.universal_edges.config.ticks_per_edge
local id = storage.universal_edges.current_edge_id
if id == nil then
id = next(global.universal_edges.edges)
id = next(storage.universal_edges.edges)
if id == nil then
return -- no edges
end
global.universal_edges.current_edge_id = id
storage.universal_edges.current_edge_id = id
end
local edge = global.universal_edges.edges[id]
local edge = storage.universal_edges.edges[id]

-- edge may have been removed while iterating over it
if edge == nil then
global.universal_edges.current_edge_id = nil
storage.universal_edges.current_edge_id = nil
return
end

Expand All @@ -351,7 +351,7 @@ universal_edges.events = {
end

if ticks_left == 0 then
global.universal_edges.current_edge_id = next(global.universal_edges.edges, id)
storage.universal_edges.current_edge_id = next(storage.universal_edges.edges, id)
end
end,

Expand All @@ -366,18 +366,18 @@ universal_edges.events = {
[defines.events.script_raised_destroy] = function(event) on_removed(event.entity) end,

[defines.events.on_player_joined_game] = function(event)
if global.universal_edges == nil then
if storage.universal_edges == nil then
setupGlobalData()
end
entity_link.on_player_joined_game(event)
local player = game.players[event.player_index]
-- Check if we have a pending request to enter a vehicle
if global.universal_edges.carriage_drivers[player.name] ~= nil then
local entity = global.universal_edges.carriage_drivers[player.name]
if storage.universal_edges.carriage_drivers[player.name] ~= nil then
local entity = storage.universal_edges.carriage_drivers[player.name]
if entity.valid then
entity.set_driver(player)
end
global.universal_edges.carriage_drivers[player.name] = nil
storage.universal_edges.carriage_drivers[player.name] = nil
end
end,
[defines.events.on_player_left_game] = entity_link.on_player_left_game,
Expand All @@ -387,11 +387,11 @@ universal_edges.events = {
if entity.name == "train-stop"
and entity.backer_name
and (
global.universal_edges.pathfinder.rescan_connector_paths_after == nil
or global.universal_edges.pathfinder.rescan_connector_paths_after < game.tick
storage.universal_edges.pathfinder.rescan_connector_paths_after == nil
or storage.universal_edges.pathfinder.rescan_connector_paths_after < game.tick
)
then
global.universal_edges.pathfinder.rescan_connector_paths_after = game.tick + 180
storage.universal_edges.pathfinder.rescan_connector_paths_after = game.tick + 180
end
end,
}
Expand Down
26 changes: 13 additions & 13 deletions module/edge/entity_link.lua
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ local function poll_links(id, edge, ticks_left)
end

-- Clear records from players waiting to leave that left the edge again
for player_name, leave in pairs(global.universal_edges.players_waiting_to_leave) do
for player_name, leave in pairs(storage.universal_edges.players_waiting_to_leave) do
if leave.edge_id == edge.id then
local clear = false
if not leave.entity.valid then
Expand All @@ -30,7 +30,7 @@ local function poll_links(id, edge, ticks_left)
end
end
if clear then
global.universal_edges.players_waiting_to_leave[player_name] = nil
storage.universal_edges.players_waiting_to_leave[player_name] = nil
end
end
end
Expand All @@ -49,10 +49,10 @@ local function poll_links(id, edge, ticks_left)
end
if entity.type == "character" then
if entity.player then
local waiting = global.universal_edges.players_waiting_to_leave[entity.player.name]
local waiting = storage.universal_edges.players_waiting_to_leave[entity.player.name]
if waiting == nil or waiting.edge_id ~= edge.id then
edge_pos = edge_util.world_to_edge_pos({entity.position.x, entity.position.y}, edge)
global.universal_edges.players_waiting_to_leave[entity.player.name] = {
storage.universal_edges.players_waiting_to_leave[entity.player.name] = {
edge_id = edge.id,
entity = entity,
edge_pos = edge_pos,
Expand Down Expand Up @@ -84,14 +84,14 @@ local function on_player_left_game(event)
if player == nil then
return
end
if not global.universal_edges.players_waiting_to_leave then
if not storage.universal_edges.players_waiting_to_leave then
return
end
if not global.universal_edges.players_waiting_to_leave[player.name] then
if not storage.universal_edges.players_waiting_to_leave[player.name] then
return
end
local leave = global.universal_edges.players_waiting_to_leave[player.name]
global.universal_edges.players_waiting_to_leave[player.name] = nil
local leave = storage.universal_edges.players_waiting_to_leave[player.name]
storage.universal_edges.players_waiting_to_leave[player.name] = nil
clusterio_api.send_json("universal_edges:transfer", {
edge_id = leave.edge_id,
entity_transfers = {
Expand All @@ -113,7 +113,7 @@ local function receive_transfers(edge, entity_transfers)
local entity_response_transfers = {}
for _, entity_transfer in ipairs(entity_transfers) do
if entity_transfer.type == "player" then
global.universal_edges.players_waiting_to_join[entity_transfer.player_name] = {
storage.universal_edges.players_waiting_to_join[entity_transfer.player_name] = {
edge_id = edge.id,
edge_pos = entity_transfer.edge_pos
}
Expand All @@ -127,12 +127,12 @@ local function on_player_joined_game(event)
if player == nil then
return
end
if not global.universal_edges.players_waiting_to_join[player.name] then
if not storage.universal_edges.players_waiting_to_join[player.name] then
return
end
local join = global.universal_edges.players_waiting_to_join[player.name]
global.universal_edges.players_waiting_to_join[player.name] = nil
local edge = global.universal_edges.edges[join.edge_id]
local join = storage.universal_edges.players_waiting_to_join[player.name]
storage.universal_edges.players_waiting_to_join[player.name] = nil
local edge = storage.universal_edges.edges[join.edge_id]
if not edge then
log("Got player joined for unknown edge " .. serpent.line(join))
return
Expand Down
16 changes: 8 additions & 8 deletions module/edge/power_link.lua
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ local function poll_links(id, edge, ticks_left)
end

-- Add power to the eei from the lua buffer to get smooth graphs
for _, edge in pairs(global.universal_edges.edges) do
for _, edge in pairs(storage.universal_edges.edges) do

Check failure on line 36 in module/edge/power_link.lua

View workflow job for this annotation

GitHub Actions / Luacheck

(W422) shadowing definition of argument edge on line 7
if not edge.linked_power then
goto continue
end
Expand All @@ -46,11 +46,11 @@ local function poll_links(id, edge, ticks_left)
log("FATAL: received power for a link that does not have an eei " .. link.offset)
goto continue2
end
if global.universal_edges.linked_power_update_tick ~= nil and link.lua_buffered_energy ~= nil and link.lua_buffered_energy > 0 then
if storage.universal_edges.linked_power_update_tick ~= nil and link.lua_buffered_energy ~= nil and link.lua_buffered_energy > 0 then
local ticks_until_next_frame = 5 +
math.max(0,
global.universal_edges.linked_power_update_tick +
(global.universal_edges.linked_power_update_period or 60) - game.tick)
storage.universal_edges.linked_power_update_tick +
(storage.universal_edges.linked_power_update_period or 60) - game.tick)
link.eei.energy = link.eei.energy + link.lua_buffered_energy / ticks_until_next_frame
link.lua_buffered_energy = math.max(0,
link.lua_buffered_energy - link.lua_buffered_energy / ticks_until_next_frame)
Expand All @@ -62,7 +62,7 @@ local function poll_links(id, edge, ticks_left)

-- Balance links in the same power network
local networks = {}
for _, edge in pairs(global.universal_edges.edges) do
for _, edge in pairs(storage.universal_edges.edges) do

Check failure on line 65 in module/edge/power_link.lua

View workflow job for this annotation

GitHub Actions / Luacheck

(W422) shadowing definition of argument edge on line 7
if not edge.linked_power then
goto continue
end
Expand Down Expand Up @@ -100,10 +100,10 @@ local function poll_links(id, edge, ticks_left)
end

local function receive_transfers(edge, power_transfers)
if global.universal_edges.linked_power_update_tick then
global.universal_edges.linked_power_update_period = game.tick - global.universal_edges.linked_power_update_tick
if storage.universal_edges.linked_power_update_tick then
storage.universal_edges.linked_power_update_period = game.tick - storage.universal_edges.linked_power_update_tick
end
global.universal_edges.linked_power_update_tick = game.tick
storage.universal_edges.linked_power_update_tick = game.tick
if power_transfers == nil then
return {}
end
Expand Down
Loading

0 comments on commit 53585b5

Please sign in to comment.