Expandable Menu System

Here’s a working example of the menus, too.

import direct.directbase.DirectStart
from direct.filter.CommonFilters import CommonFilters

from InputManagerClass_01 import InputManager
from MenuClass import Menu

class MenuTest:
	def __init__(self):
		base.disableMouse()
		base.setBackgroundColor(0, 0, 0)
		self.inputManager = None
		self.fonts = {"silver" : loader.loadFont("../Fonts/LuconSilver.egg"),
						"blue" : loader.loadFont("../Fonts/LuconBlue.egg"),
						"orange" : loader.loadFont("../Fonts/LuconOrange.egg")}
		self.menuGraphics = loader.loadModel("../Models/MenuGraphics.egg")
		self.createStartMenu()
		
	def createStartMenu(self):
		menu = Menu(self.menuGraphics, self.fonts, self.inputManager)
		menu.initMenu([0, None, ["Submenu", "Quit Game"],
			[self.createSubMenu, base.userExit],
			["Submenu", None]])
	
	def createSubMenu(self, title):
		menu = Menu(self.menuGraphics, self.fonts, self.inputManager)
		menu.initMenu([3, title, ["Submenu", "Go Back"],
			[self.createSubMenu, self.createStartMenu],
			["Another Submenu", None]])
		
MT = MenuTest()
run()