140 lines
3.0 KiB
Lua
140 lines
3.0 KiB
Lua
function ModFeeder( f1_arg0 )
|
|
local mod_buttons = {}
|
|
if (not directoryexists("mods")) then
|
|
return mod_buttons
|
|
end
|
|
|
|
local mods = listfiles("mods/")
|
|
for i = 1, #mods do
|
|
local mod_button = nil
|
|
local mod_path = mods[i]
|
|
local mod_name = mod_path:gsub("mods/", "")
|
|
if (directoryexists(mods[i]) and not directoryisempty(mods[i])) then
|
|
mod_button = {
|
|
type = "UIGenericButton",
|
|
id = "mod_button_" .. i,
|
|
properties = {
|
|
button_text = mod_name,
|
|
button_action_func = MBh.EmitEventToRoot( {
|
|
name = "select_mod",
|
|
modtoload = mod_path
|
|
} )
|
|
}
|
|
}
|
|
end
|
|
mod_buttons[#mod_buttons + 1] = mod_button
|
|
end
|
|
return mod_buttons
|
|
end
|
|
|
|
function SelectMod( f6_arg0, f6_arg1 )
|
|
Engine.Exec("loadmod " .. f6_arg1.modtoload)
|
|
end
|
|
|
|
function UnloadMod()
|
|
Engine.Exec("unloadmod")
|
|
end
|
|
|
|
function BackButtonFunc( f13_arg0 )
|
|
LUI.FlowManager.RequestLeaveMenu( f13_arg0 )
|
|
end
|
|
|
|
function ModsMenuButtons( f2_arg0 )
|
|
f2_arg0:dispatchEventToRoot( {
|
|
name = "add_button_helper_text",
|
|
button_ref = "button_secondary",
|
|
helper_text = Engine.Localize( "@LUA_MENU_BACK" ),
|
|
side = "left",
|
|
clickable = true,
|
|
immediate = true
|
|
} )
|
|
f2_arg0:dispatchEventToRoot( {
|
|
name = "add_button_helper_text",
|
|
button_ref = "button_action",
|
|
helper_text = Engine.Localize( "@LUA_MENU_SELECT" ),
|
|
side = "left",
|
|
clickable = true,
|
|
immediate = true
|
|
} )
|
|
f2_arg0:dispatchEventToRoot( {
|
|
name = "add_button_helper_text",
|
|
button_ref = "button_alt1",
|
|
helper_text = "Unload Mod",
|
|
side = "left",
|
|
clickable = true,
|
|
immediate = true
|
|
} )
|
|
end
|
|
|
|
function mods_menu()
|
|
return {
|
|
type = "UIElement",
|
|
id = "mods_menu_root",
|
|
properties = {
|
|
menu_title = "MODS",
|
|
rotationAllowed = false
|
|
},
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = 0,
|
|
bottom = 0,
|
|
left = 0,
|
|
right = 0
|
|
}
|
|
},
|
|
handlers = {
|
|
menu_create = ModsMenuButtons,
|
|
select_mod = SelectMod
|
|
},
|
|
children = {
|
|
{
|
|
type = "generic_menu_title",
|
|
id = "mod_menu_title",
|
|
properties = {
|
|
menu_title = MBh.Property( "menu_title" )
|
|
}
|
|
},
|
|
{
|
|
type = "UIScrollingVerticalList",
|
|
id = "modlist",
|
|
childrenFeeder = ModFeeder,
|
|
properties = {
|
|
use_arrows = true,
|
|
use_scrollbar = false,
|
|
bar_width = 20
|
|
},
|
|
states = {
|
|
default = {
|
|
leftAnchor = true,
|
|
rightAnchor = false,
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
left = GenericMenuDims.menu_left,
|
|
right = GenericMenuDims.menu_right,
|
|
top = GenericMenuDims.menu_top,
|
|
bottom = GenericMenuDims.menu_top + GenericButtonSettings.Styles.GradientButton.height * 11 + 2 + 60
|
|
}
|
|
}
|
|
},
|
|
{
|
|
type = "UIBindButton",
|
|
id = "mods_menu_bindbuttons",
|
|
handlers = {
|
|
button_secondary = BackButtonFunc,
|
|
button_alt1 = UnloadMod
|
|
}
|
|
},
|
|
{
|
|
type = "button_helper_text_main",
|
|
id = "mods_menu_button_helper_text_id"
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
LUI.MenuBuilder.registerDef( "mods_menu", mods_menu )
|