82 lines
4.3 KiB
Python
82 lines
4.3 KiB
Python
from direct.gui.DirectGui import OnscreenImage, DirectLabel, DirectButton
|
|
from toontown.toonbase import ToontownGlobals, TTLocalizer
|
|
from toontown.toontowngui import TTDialog
|
|
import os
|
|
|
|
class LanguageSelector:
|
|
|
|
def __init__(self, leaveFunction):
|
|
self.title = None
|
|
self.current = None
|
|
self.available = None
|
|
self.english = None
|
|
self.french = None
|
|
self.portuguese = None
|
|
self.german = None
|
|
self.backButton = None
|
|
self.confirmDialog = None
|
|
self.leaveFunction = leaveFunction
|
|
|
|
def create(self):
|
|
self.background = OnscreenImage(parent=render2d, image="phase_3.5/maps/blackboardEmpty.jpg")
|
|
self.gui = loader.loadModel('phase_3/models/gui/tt_m_gui_mat_mainGui')
|
|
self.shuffleUp = self.gui.find('**/tt_t_gui_mat_shuffleUp')
|
|
self.shuffleDown = self.gui.find('**/tt_t_gui_mat_shuffleDown')
|
|
|
|
self.title = DirectLabel(aspect2d, relief=None, text=TTLocalizer.LanguageSelectorTitle,
|
|
text_fg=(0, 1, 0, 1), text_scale=0.15, text_font=ToontownGlobals.getSuitFont(),
|
|
pos=(0, 0, 0.70), text_shadow=(0, 0.392, 0, 1))
|
|
|
|
self.current = DirectLabel(aspect2d, relief=None, text=TTLocalizer.LanguageSelectorCurrent % settings['language'],
|
|
text_fg=(0, 1, 0, 1), text_scale=0.09, text_font=ToontownGlobals.getSuitFont(),
|
|
pos=(0, 0, 0.55), text_shadow=(0, 0.392, 0, 1))
|
|
|
|
self.available = DirectLabel(aspect2d, relief=None, text=TTLocalizer.LanguageSelectorAvailable,
|
|
text_fg=(1, 0, 0, 1), text_scale=0.09, text_font=ToontownGlobals.getSuitFont(),
|
|
pos=(0, 0, 0), text_shadow=(0.545, 0, 0, 1))
|
|
|
|
self.english = DirectButton(aspect2d, relief=None, text='English',
|
|
text_fg=(1, 0.549, 0, 1), text_scale=0.09, text_font=ToontownGlobals.getSuitFont(),
|
|
pos=(0, 0, -0.15), text_shadow=(1, 0.27, 0, 1), command=self.switchLanguage, extraArgs=['English'])
|
|
|
|
self.french = DirectButton(aspect2d, relief=None, text='French',
|
|
text_fg=(1, 0.549, 0, 1), text_scale=0.09, text_font=ToontownGlobals.getSuitFont(),
|
|
pos=(0, 0, -0.25), text_shadow=(1, 0.27, 0, 1), command=self.switchLanguage, extraArgs=['French'])
|
|
|
|
self.portuguese = DirectButton(aspect2d, relief=None, text='Portuguese',
|
|
text_fg=(1, 0.549, 0, 1), text_scale=0.09, text_font=ToontownGlobals.getSuitFont(),
|
|
pos=(0, 0, -0.35), text_shadow=(1, 0.27, 0, 1), command=self.switchLanguage, extraArgs=['Portuguese'])
|
|
|
|
self.german = DirectButton(aspect2d, relief=None, text='German',
|
|
text_fg=(1, 0.549, 0, 1), text_scale=0.09, text_font=ToontownGlobals.getSuitFont(),
|
|
pos=(0, 0, -0.45), text_shadow=(1, 0.27, 0, 1), command=self.switchLanguage, extraArgs=['German'])
|
|
|
|
self.backButton = DirectButton(aspect2d, relief=None, image=(self.shuffleUp, self.shuffleDown),
|
|
text=TTLocalizer.LanguageSelectorBack, text_font=ToontownGlobals.getInterfaceFont(),
|
|
text_scale=0.11, text_pos=(0, -0.02), pos=(0, 0, -0.75), text_fg=(1, 1, 1, 1),
|
|
text_shadow=(0, 0, 0, 1), command=self.destroy)
|
|
|
|
def destroy(self):
|
|
for element in [self.background, self.title, self.current, self.available, self.english, self.french, self.portuguese, self.german, self.backButton, self.confirmDialog]:
|
|
if element:
|
|
element.destroy()
|
|
element = None
|
|
|
|
self.leaveFunction()
|
|
|
|
def switchLanguage(self, language):
|
|
if language == settings['language']:
|
|
self.confirmDialog = TTDialog.TTDialog(style=TTDialog.Acknowledge, text=TTLocalizer.LanguageSelectorSameLanguage, command=self.cleanupDialog)
|
|
else:
|
|
self.confirmDialog = TTDialog.TTDialog(style=TTDialog.YesNo, text=TTLocalizer.LanguageSelectorConfirm % language, command=self.confirmSwitchLanguage, extraArgs=[language])
|
|
self.confirmDialog.show()
|
|
|
|
def confirmSwitchLanguage(self, value, language):
|
|
if value > 0:
|
|
settings['language'] = language
|
|
os._exit(1)
|
|
else:
|
|
self.cleanupDialog()
|
|
|
|
def cleanupDialog(self, value=0):
|
|
self.confirmDialog.cleanup()
|