Update to make catagories

This commit is contained in:
2026-02-15 13:11:32 -05:00
parent ad8310f143
commit 53b0b4317d
7 changed files with 1209 additions and 23 deletions

View File

@@ -0,0 +1,135 @@
local OFBCGuns93ModPackInjector = {
installed = false,
tickHookAdded = false,
}
local APPLY_MODS_MODULE = "BetterContainers/Categorize/Categories/_applyMods"
local GUNS93_PACK_PATH = "mods/guns93_items"
local BC_MOD_IDS = {
"EURY_CONTAINERS",
"REORDER_CONTAINERS",
"\\EURY_CONTAINERS",
"\\REORDER_CONTAINERS",
}
local GUNS93_MOD_IDS = {
"guns93",
"\\guns93",
}
local function getActivatedModsList()
if type(getActivatedMods) ~= "function" then
return nil
end
local mods = getActivatedMods()
if not mods or type(mods.contains) ~= "function" then
return nil
end
return mods
end
local function isBetterContainersActive()
local mods = getActivatedModsList()
if not mods then
return nil
end
for i = 1, #BC_MOD_IDS do
if mods:contains(BC_MOD_IDS[i]) then
return true
end
end
return false
end
local function isGuns93Active()
local mods = getActivatedModsList()
if not mods then
return false
end
for i = 1, #GUNS93_MOD_IDS do
if mods:contains(GUNS93_MOD_IDS[i]) then
return true
end
end
return false
end
local function installApplyModsWrapper()
if OFBCGuns93ModPackInjector.installed then
return true
end
local bcState = isBetterContainersActive()
if bcState == false then
OFBCGuns93ModPackInjector.installed = true
return true
end
if bcState == nil then
return false
end
if _G.OF_GUNS93_BC_APPLYMODS_WRAPPED then
OFBCGuns93ModPackInjector.installed = true
return true
end
local ok, applyMods = pcall(require, APPLY_MODS_MODULE)
if not ok or type(applyMods) ~= "function" then
return false
end
if type(package) ~= "table" or type(package.loaded) ~= "table" then
return false
end
local function wrappedApplyMods(loadCategoryFile, dlog)
applyMods(loadCategoryFile, dlog)
if not isGuns93Active() then
return
end
if type(loadCategoryFile) == "function" then
loadCategoryFile(GUNS93_PACK_PATH)
if dlog then
dlog("Loaded category pack guns93_items")
end
end
end
package.loaded[APPLY_MODS_MODULE] = wrappedApplyMods
_G.OF_GUNS93_BC_APPLYMODS_WRAPPED = true
OFBCGuns93ModPackInjector.installed = true
return true
end
local function tryInstallOnTick()
if installApplyModsWrapper() then
OFBCGuns93ModPackInjector.tickHookAdded = false
Events.OnTick.Remove(tryInstallOnTick)
end
end
local function ensureTickHook()
if OFBCGuns93ModPackInjector.tickHookAdded then
return
end
OFBCGuns93ModPackInjector.tickHookAdded = true
Events.OnTick.Add(tryInstallOnTick)
end
if not installApplyModsWrapper() then
ensureTickHook()
end
if Events.OnMainMenuEnter and type(Events.OnMainMenuEnter.Add) == "function" then
Events.OnMainMenuEnter.Add(installApplyModsWrapper)
end