diff --git a/examples/menus/inventory/init.lua b/examples/menus/inventory/init.lua index 9131acb..a41d003 100644 --- a/examples/menus/inventory/init.lua +++ b/examples/menus/inventory/init.lua @@ -49,11 +49,10 @@ function Inventory:new() self:addItem("shield", 2) self:addItem("shield", 1) - self.menusystem.menus["main"].isLocked = true + self.menusystem:lockMenu("main") self.menusystem:switchMenu("main") - self.menusystem.menus["weapon"].isVisible = true - self.menusystem.menus["weapon"].isActive = true + self.menusystem:setMenuActivity("weapon", true) end -- MENU FUNCTION diff --git a/gamecore/modules/menusystem/init.lua b/gamecore/modules/menusystem/init.lua index aae8c54..0e67dd1 100644 --- a/gamecore/modules/menusystem/init.lua +++ b/gamecore/modules/menusystem/init.lua @@ -26,6 +26,10 @@ function MenuSystem:addMenu(name, menu) self.menus[name] = menu end +function MenuSystem:menuExist(name) + return (self.menus[name] ~= nil) +end + function MenuSystem:update(dt) self:removeDestroyedMenus() for k,v in pairs(self.menus) do @@ -59,6 +63,38 @@ function MenuSystem:switchMenu(menu) end end +function MenuSystem:lockMenu(menu, lock) + local lock = lock or true + if self:menuExist(menu) then + self.menus[menu]:lock(lock) + end +end + +function MenuSystem:lockMenuVisibility(menu, lock) + local lock = lock or true + if self:menuExist(menu) then + self.menus[menu]:lockVisibility(lock) + end +end + +function MenuSystem:setMenuActivity(menu, activity) + local activity = activity or true + if self:menuExist(menu) then + self.menus[menu]:setActivity(activity) + if activity == true then + -- if we make the menu active, he have to be visible too + self.menus[menu]:setVisibility(true) + end + end +end + +function MenuSystem:setMenuVisibility(menu, visibility) + local visibility = visibility or true + if self:menuExist(menu) then + self.menus[menu]:setVisibility(visibility) + end +end + function MenuSystem:setAllMenuVisibility(visibility) for k,v in pairs(self.menus) do v:setVisibility(visibility) diff --git a/gamecore/modules/menusystem/parent.lua b/gamecore/modules/menusystem/parent.lua index 2c0e71e..8581e34 100644 --- a/gamecore/modules/menusystem/parent.lua +++ b/gamecore/modules/menusystem/parent.lua @@ -53,6 +53,14 @@ function Menu:setActivity(activity) end end +function Menu:lock(lock) + self.isLocked = lock +end + +function Menu:lockVisibility(lock) + self.isAlwaysVisible = lock +end + function Menu:getFocus() self.menusystem.focusedMenu = self.name end