Skip to content

Commit

Permalink
Sort modlist alphabetically
Browse files Browse the repository at this point in the history
  • Loading branch information
PilzAdam committed Aug 16, 2013
1 parent d52185c commit b94f182
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 0 deletions.
33 changes: 33 additions & 0 deletions builtin/filterlist.lua
Expand Up @@ -246,3 +246,36 @@ function sort_worlds_alphabetic(this)
return a.name:lower() < b.name:lower()
end)
end

--------------------------------------------------------------------------------
function sort_mod_list(this)

table.sort(this.m_processed_list, function(a, b)
-- Show game mods at bottom
if a.typ ~= b.typ then
return b.typ == "game_mod"
end
-- If in same or no modpack, sort by name
if a.modpack == b.modpack then
if a.name:lower() == b.name:lower() then
return a.name < b.name
end
return a.name:lower() < b.name:lower()
-- Else compare name to modpack name
else
-- Always show modpack pseudo-mod on top of modpack mod list
if a.name == b.modpack then
return true
elseif b.name == a.modpack then
return false
end

local name_a = a.modpack or a.name
local name_b = b.modpack or b.name
if name_a:lower() == name_b:lower() then
return name_a < name_b
end
return name_a:lower() < name_b:lower()
end
end)
end
4 changes: 4 additions & 0 deletions builtin/modmgr.lua
Expand Up @@ -972,6 +972,8 @@ function modmgr.init_worldconfig()
hide_game=modmgr.hide_gamemods,
hide_modpackcontents= modmgr.hide_modpackcontents
})
filterlist.add_sort_mechanism(modmgr.modlist, "alphabetic", sort_mod_list)
filterlist.set_sortmode(modmgr.modlist, "alphabetic")

return true
end
Expand Down Expand Up @@ -1068,6 +1070,8 @@ function modmgr.refresh_globals()
nil, --filter
{}
)
filterlist.add_sort_mechanism(modmgr.global_mods, "alphabetic", sort_mod_list)
filterlist.set_sortmode(modmgr.global_mods, "alphabetic")
end

--------------------------------------------------------------------------------
Expand Down

0 comments on commit b94f182

Please sign in to comment.