from direct.showbase import PythonUtil from otp.speedchat.SCMenu import SCMenu from otp.speedchat.SCMenuHolder import SCMenuHolder from otp.speedchat.SCStaticTextTerminal import SCStaticTextTerminal from otp.otpbase import OTPLocalizer GolfMenuGuide = [(OTPLocalizer.GolfMenuSections[1], [4100, 4101, 4102, 4103, 4104, 4105]), (OTPLocalizer.GolfMenuSections[2], [4200, 4201, 4202, 4203, 4204, 4205, 4206, 4207]), (OTPLocalizer.GolfMenuSections[3], [4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307]), (OTPLocalizer.GolfMenuSections[0], [4000, 4001, 4002])] class TTSCGolfMenu(SCMenu): def __init__(self): SCMenu.__init__(self) self.accept('golfMessagesChanged', self.__golfMessagesChanged) self.__golfMessagesChanged() submenus = [] def destroy(self): SCMenu.destroy(self) def clearMenu(self): SCMenu.clearMenu(self) def __golfMessagesChanged(self): self.clearMenu() try: lt = base.localAvatar except: return for section in GolfMenuGuide: if section[0] == -1: for phrase in section[1]: if phrase not in OTPLocalizer.SpeedChatStaticText: print('warning: tried to link golf phrase %s which does not seem to exist' % phrase) break self.append(SCStaticTextTerminal(phrase)) else: menu = SCMenu() for phrase in section[1]: if phrase not in OTPLocalizer.SpeedChatStaticText: print('warning: tried to link golf phrase %s which does not seem to exist' % phrase) break menu.append(SCStaticTextTerminal(phrase)) menuName = str(section[0]) self.append(SCMenuHolder(menuName, menu))