From c55dd48e5257c3355bb2f3bb9a300ed0d1e0acc5 Mon Sep 17 00:00:00 2001 From: nutbuster Date: Mon, 28 Nov 2022 08:40:38 +1100 Subject: [PATCH] Confirmation --- game/src/translation.rpy | 55 ++++++++++++++++++++++++++++++---------- 1 file changed, 42 insertions(+), 13 deletions(-) diff --git a/game/src/translation.rpy b/game/src/translation.rpy index 636523e..15cc3ff 100644 --- a/game/src/translation.rpy +++ b/game/src/translation.rpy @@ -28,6 +28,23 @@ init python: SMALL_SIZE = (LARGE_SIZE[0]//3, LARGE_SIZE[1]//3) SMALL_SPACING = (LARGE_SPACING[0]//2, LARGE_SPACING[1]//2) + def _redraw(self, oldlang): + if oldlang != _preferences.language: + for lb in LangCave.lang_buttons: + lb.selected = False + self.selected = True + + for lb in LangCave.lang_buttons: + renpy.redraw(lb, 0) + + if LangCave.on_disable_interactable: + if oldlang != _preferences.language or (oldlang is None): + LangCave.on_disable_interactable = False + LangCave.recreate_lang_buttons_roulette_style(LangCave.SMALL_SIZE) #mostly going to happen + renpy.end_interaction(0) + + pass + class LangButton(renpy.Displayable): def __init__(self, v, child, **kwargs): super(LangCave.LangButton, self).__init__(**kwargs) @@ -41,6 +58,7 @@ init python: self.width = 0#w self.height = 0#h self.value = v + #self.function = Language(v) self.hover = True #renpy can't handle not/! self.selected = False @@ -71,19 +89,28 @@ init python: if ((ex > 0 and ey > 0) and (ex < self.width and ey < self.height)): self.hover = False if (renpy.map_event(ev, 'mouseup_1')): #1026 - for lb in LangCave.lang_buttons: - lb.selected = False - self.selected = True - onclick_audio(False) - self.value() #todo: change to function, as value doesn't make sense + if not self.selected: #don't double click + onclick_audio(False) + + #just in case + oldlang = _preferences.language + if oldlang is None: + oldlang = None + else: + oldlang = (_preferences.language+'.')[:-1] #copy + + #self.function() + newf = Function(renpy.change_language, self.value) + newf() + if (self.value != None): #check if it's not english + args = [self, oldlang] + new = Function(LangCave._redraw, *args) + old = [Function(renpy.change_language, oldlang), Function(LangCave._redraw, *args)] + Confirm(_("Sample Text"), new, no=old)() + else: + LangCave._redraw(self, oldlang) - if LangCave.on_disable_interactable: - LangCave.on_disable_interactable = False - LangCave.recreate_lang_buttons_roulette_style(LangCave.SMALL_SIZE) #mostly going to happen - renpy.end_interaction(0) - for lb in LangCave.lang_buttons: - renpy.redraw(lb, 0) else: self.hover = True pass @@ -114,7 +141,7 @@ init python: #solid = Solid((22,22,22), xysize=size) # = Solid((22,22,22), xysize=size) _button = Fixed(tfi, xysize=size) - lang = Language(llb['value']) + lang = llb['value'] button = LangCave.LangButton(lang, _button) LangCave.on_disable_interactable = True @@ -151,7 +178,8 @@ init python: penultimate = HBox(text, _button, style_prefix="navigation", spacing=20) #print(dir(penultimate)) - lang = Language(llb['value']) + #lang = Language(llb['value']) + lang = llb['value'] button = LangCave.LangButton(lang, penultimate) if (_preferences.language == llb['value']): @@ -216,6 +244,7 @@ screen translator_popup: style_prefix "navigation" hbox: label _("Choose Your Language") text_size 80 + label _("") text_size 80 hbox: add Null(80, 40) add DynamicDisplayable(LangCave.render_langcave)