setExtensionUnloadMode
Definition
-- @/lua/ge/main.lua:406
-- extensions' unloadMode is "auto" by default
-- - "auto": they may get unloaded when switching maps, loading a scenario, and other circumstances
-- - "manual": they will not get unloaded, instead the extension lifetime is controlled explicitly (manually)
function setExtensionUnloadMode(extension, unloadMode)
local extName = extension
if type(extension) == 'table' then
extName = extension.__extensionName__
end
if type(extName) ~= 'string' then
log('E','','Failed to set unload mode "'..dumps(unloadMode)..'" due to unrecognized extension: '..dumps(extension))
return
end
if unloadMode == 'manual' then
for _, v in ipairs(manualUnloadExtensions) do
if v == extName then
return
end
end
table.insert(manualUnloadExtensions, extName)
elseif unloadMode == 'auto' then
for i, v in ipairs(manualUnloadExtensions) do
if v == extName then
table.remove(manualUnloadExtensions, i)
return
end
end
else
log('E','','Failed to set unrecognised unload mode "'..dumps(unloadMode)..'" for extension: '..dumps(extension))
return
end
end
Callers
@/lua/ge/extensions/core/metrics.lua
local function onInit()
setExtensionUnloadMode(M, "manual")
end
@/lua/ge/extensions/tech/impactgen/crashOutput.lua
setExtensionUnloadMode(M, 'manual')
extensions.load('tech/partAnnotations')
@/lua/ge/extensions/tech/partAnnotations.lua
M.onInit = function()
setExtensionUnloadMode(M, 'manual')
end
@/lua/ge/extensions/telemetry/core.lua
-- Always stay loaded to prevent errors, but operate as no-op when disabled
setExtensionUnloadMode(M, "manual")
@/lua/ge/extensions/render/openxr.lua
local function onInit()
setExtensionUnloadMode(M, "manual")
onSettingsChanged()
@/lua/ge/extensions/tech/ultrasonicTest.lua
log('I', 'ultrasonicTest', 'ultrasonicTest extension loaded')
setExtensionUnloadMode(M, 'manual')
end
@/lua/ge/extensions/ui/apps/genericMissionData.lua
local M = {}
M.onInit = function() setExtensionUnloadMode(M, "manual") end
@/lua/common/extensions/networking/editorToolchain.lua
local function onInit()
setExtensionUnloadMode(M, 'manual')
end
@/lua/ge/main.lua
-- To load an extension on demand: extensions.load("my_extension")
-- To keep an extension loaded across levels: M.onInit = function() setExtensionUnloadMode(M, "manual") end
-- To unload an extension when no longer needed: M.myFunction = function() extensions.unload(M) end
log('E','','== OUTDATED MOD CODE ==')
log('E','',"registerCoreModule("..dumps(extensionName).." will be deprecated soon. Instead, replace with: setExtensionUnloadMode(M, \"manual\")")
print(debug.tracesimple())
extensionName = extensions.luaPathToExtName(extensionName)
setExtensionUnloadMode(extensionName, "manual")
end
@/lua/ge/extensions/gameplay/discover.lua
local function onInit()
setExtensionUnloadMode(M, "manual")
local cmdArgs = Engine.getStartingArgs()
@/lua/ge/extensions/util/worker.lua
log('I', 'util_worker', 'loaded')
setExtensionUnloadMode(M, "manual")
extensions.load('test/renderVehiclePreview')
@/lua/ge/extensions/util/compileImposters.lua
M.onInit = function()
setExtensionUnloadMode(M, "manual")
end
@/lua/ge/extensions/career/career.lua
for _, extension in ipairs(extensionFiles) do
setExtensionUnloadMode(extensions.luaPathToExtName(extension), "manual")
end
@/lua/ge/extensions/core/modmanager.lua
extensions.load = function(module)
log('W', 'initDB.modScript', 'Please make sure to call setExtensionUnloadMode(m, "manual") to have this extension loaded properly.')
old_loadModule(module)
old_loadModule(module)
setExtensionUnloadMode(module, "manual")
end
@/lua/ge/extensions/tech/capturePlayer.lua
local function onInit()
setExtensionUnloadMode(M, 'manual')
@/lua/ge/extensions/tech/lidarTest.lua
log('I', 'lidarTest', 'lidarTest extension loaded')
setExtensionUnloadMode(M, 'manual')
end
@/lua/ge/extensions/core/commandhandler.lua
extensions.load("core_loadMapCmd")
setExtensionUnloadMode("core_loadMapCmd", "manual")
core_loadMapCmd.set(jsondata, isStartingArg)
extensions.load("core_snapshot")
setExtensionUnloadMode("core_snapshot", "manual")
core_snapshot.onSnapshotSchemeCommand(cmd, data, isStartingArg)
@/lua/ge/extensions/ui/apps/minimap/minimap.lua
M.onInit = function()
setExtensionUnloadMode(M, "manual")
M.onMinimapSettingsChanged()
@/lua/ge/extensions/tech/techCore.lua
M.onInit = function()
setExtensionUnloadMode(M, 'manual')
@/lua/ge/extensions/ui/topBar.lua
-- disable automatic unload
setExtensionUnloadMode(M, "manual")
end
@/lua/ge/extensions/ui/apps/pointsBar.lua
local M = {}
M.onInit = function() setExtensionUnloadMode(M, "manual") end
@/lua/common/extensions/tech/techCapture.lua
local function onInit()
setExtensionUnloadMode(M, 'manual')
end