function GetAllLogisticGrids() local resultParts = {} resultParts[#resultParts+1] = "---logistic-grids---\n" for _,surface in pairs(game.surfaces) do local grids = game.forces["player"].logistic_networks[surface.name] for _,grid in pairs(grids) do resultParts[#resultParts+1] = ("%s:%d:%d:%d:%d:%d:%d"):format( surface.name, grid.network_id, grid.all_construction_robots, grid.all_logistic_robots, grid.available_construction_robots, grid.available_logistic_robots, grid.robot_limit) end end return table.concat(resultParts, "\n") end function GetLogisticNetworkContents() local resultParts = {} resultParts[#resultParts+1] = "---logistic-grids-contents---\n" for _,surface in pairs(game.surfaces) do local grids = game.forces["player"].logistic_networks[surface.name] for _,grid in pairs(grids) do for _,itemWithQuality in pairs(grid.get_contents())do resultParts[#resultParts+1] = ("%s:%d:%s:%d"):format(surface.name,grid.network_id,itemWithQuality.name..":"..itemWithQuality.quality,itemWithQuality.count) end end end return table.concat(resultParts, "\n") end function SendLogisticStats() if options.enableRobots then local send = GetAllLogisticGrids()..GetLogisticNetworkContents() helpers.send_udp(udpAddress,send,serverIndex) end end