GE Lua Documentation

Press F to search!

setupFilter

Definition


-- @/lua/ge/extensions/freeroam/bigMapMarkers.lua:23
local function setupFilter(validIds, radius)
  local elementsInFilter = {}

  if radius then
    radius = round(radius/radiusStep) * radiusStep
  else
    radius = 20
  end

  local settingsId = radius.."#-"
  local validIdsLookup = {}
  table.sort(validIds)
  for _, e in ipairs(validIds) do
    settingsId = settingsId .. e
    validIdsLookup[e] = true
  end
  clusterSettingsCounter = clusterSettingsCounter + 1
  local clusterSettings = {radius = radius, id = settingsId, validIdsLookup = validIdsLookup, markerPrefix = clusterSettingsCounter}
  clusterSettingsById[clusterSettings.id] = clusterSettings
  currentClusterSettingsId = clusterSettings.id

  local newOldMarkers = {}
  for clusterId, marker in pairs(oldMarkersByClusterId) do
    if not marker.visible then
      marker:clearObjects()
    else
      newOldMarkers[clusterId] = marker
    end
  end
  oldMarkersByClusterId = newOldMarkers

  -- Move current markers to old markers list for gradual cleanup
  for clusterId, marker in pairs(markersByClusterId) do
    marker:hide()
    oldMarkersByClusterId[clusterId] = marker
  end
  markersByClusterId = {}
end

Callers

@/lua/ge/extensions/freeroam/bigMapMode.lua
  currentlyVisibleIds = list or {}
  freeroam_bigMapMarkers.setupFilter(currentlyVisibleIds, M.clusterMergeRadius)
end
  --freeroam_bigMapMarkers.buildPoiList() -- removed(testing)
  --freeroam_bigMapMarkers.setupFilter()
  M.clusterMergeRadius = lerp(minMergeRadius, maxMergeRadius, factor)
  freeroam_bigMapMarkers.setupFilter(currentlyVisibleIds, M.clusterMergeRadius)
  --updateOnlyIdsVisible(true)