from direct.showbase import PythonUtil from otp.speedchat.SCMenu import SCMenu from otp.speedchat.SCMenuHolder import SCMenuHolder from .TTSCSingingTerminal import TTSCSingingTerminal from otp.otpbase import OTPLocalizer SingingMenuGuide = [(OTPLocalizer.SingingMenuSections[0], [{9000: 25}, {9001: 26}, {9002: 27}, {9003: 28}, {9004: 29}, {9005: 30}, {9006: 31}, {9007: 32}, {9008: 33}])] class TTSCSingingMenu(SCMenu): def __init__(self): SCMenu.__init__(self) self.__singingMessagesChanged() def destroy(self): SCMenu.destroy(self) def clearMenu(self): SCMenu.clearMenu(self) def __singingMessagesChanged(self): self.clearMenu() try: lt = base.localAvatar except: return for count in range(len(SingingMenuGuide)): section = SingingMenuGuide[count] if section[0] == -1: for phrase in section[1]: emote = None if type(phrase) == type({}): item = list(phrase.keys())[0] emote = phrase[item] phrase = item if phrase not in OTPLocalizer.SpeedChatStaticText: print('warning: tried to link a singing phrase %s which does not seem to exist' % phrase) break terminal = TTSCSingingTerminal(phrase) if emote is not None: terminal.setLinkedEmote(emote) self.append(terminal) return