From cae1406d2b5b57286a2221f92bb96fba83dceccd Mon Sep 17 00:00:00 2001 From: Sakamoto Shiina <68018796+ShiinaSakamoto@users.noreply.github.com> Date: Sun, 14 Apr 2024 21:35:19 +0900 Subject: [PATCH] =?UTF-8?q?[Update]=20Easter=20Egg=E3=81=A8=E3=81=97?= =?UTF-8?q?=E3=81=A6=E3=80=81=E3=83=A1=E3=82=A4=E3=83=B3=E7=94=BB=E9=9D=A2?= =?UTF-8?q?=E3=83=AD=E3=82=B4=EF=BC=88=E3=82=B3=E3=83=B3=E3=83=91=E3=82=AF?= =?UTF-8?q?=E3=83=88=E3=83=A2=E3=83=BC=E3=83=89=E6=9C=AA=E5=AF=BE=E5=BF=9C?= =?UTF-8?q?=EF=BC=89=E3=82=923=E5=9B=9E=E3=82=AF=E3=83=AA=E3=83=83?= =?UTF-8?q?=E3=82=AF=E3=81=99=E3=82=8B=E3=81=A8Easter=20Egg=E6=A9=9F?= =?UTF-8?q?=E8=83=BD=E3=81=8C=E3=82=AA=E3=83=B3=E3=81=AB=E3=81=AA=E3=82=8B?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E3=80=82=20=E3=82=AA=E3=83=95?= =?UTF-8?q?=E3=81=AB=E6=88=BB=E3=81=99=E3=81=AB=E3=81=AF=E5=86=8D=E8=B5=B7?= =?UTF-8?q?=E5=8B=95=E3=81=A7=E3=80=82=20=E2=80=BBsave=20json=E3=81=AF?= =?UTF-8?q?=E3=82=B3=E3=83=A1=E3=83=B3=E3=83=88=E3=82=A2=E3=82=A6=E3=83=88?= =?UTF-8?q?=E3=81=97=E3=81=A6=E3=81=84=E3=81=BE=E3=81=99=E3=80=82=EF=BC=88?= =?UTF-8?q?=E4=BB=8A=E5=BE=8C=E3=80=81=E6=9C=AC=E5=AE=9F=E8=A3=85=E3=81=99?= =?UTF-8?q?=E3=82=8B=E6=99=82=E3=81=AB=E5=80=A4=E3=81=8C=E5=A2=97=E3=81=88?= =?UTF-8?q?=E3=81=9F=E3=82=8A=E4=BD=95=E3=81=8B=E3=81=97=E3=82=89=E5=90=8D?= =?UTF-8?q?=E5=89=8D=E3=81=8C=E5=A4=89=E6=9B=B4=E3=81=AB=E3=81=AA=E3=82=8B?= =?UTF-8?q?=E5=8F=AF=E8=83=BD=E6=80=A7=E3=82=92=E8=80=83=E3=81=88=E3=81=A6?= =?UTF-8?q?=E3=80=81=E3=83=A6=E3=83=BC=E3=82=B6=E3=83=BC=E5=81=B4=E3=81=AB?= =?UTF-8?q?=E3=83=87=E3=83=BC=E3=82=BF=E3=82=92=E4=BF=9D=E5=AD=98=E3=81=97?= =?UTF-8?q?=E3=81=9F=E3=81=8F=E3=81=AA=E3=81=84=E3=81=9F=E3=82=81=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.py | 12 +++++++++++- controller.py | 7 +++++++ locales/en.yml | 1 + view.py | 26 ++++++++++++++++++++++++++ 4 files changed, 45 insertions(+), 1 deletion(-) diff --git a/config.py b/config.py index e15ef9f0..c7657777 100644 --- a/config.py +++ b/config.py @@ -247,6 +247,15 @@ class Config: if isinstance(value, bool): self._IS_RESET_BUTTON_DISPLAYED_FOR_WHISPER = value + @property + def IS_EASTER_EGG_ENABLED(self): + return self._IS_EASTER_EGG_ENABLED + + @IS_EASTER_EGG_ENABLED.setter + def IS_EASTER_EGG_ENABLED(self, value): + if isinstance(value, bool): + self._IS_EASTER_EGG_ENABLED = value + # Save Json Data ## Main Window @property @@ -736,7 +745,7 @@ class Config: def OVERLAY_UI_TYPE(self, value): if isinstance(value, str): self._OVERLAY_UI_TYPE = value - saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value) + # saveJson(self.PATH_CONFIG, inspect.currentframe().f_code.co_name, value) @property @json_serializable('ENABLE_SEND_MESSAGE_TO_VRC') @@ -911,6 +920,7 @@ class Config: self._CURRENT_SENT_MESSAGES_LOG_INDEX = 0 self._IS_RESET_BUTTON_DISPLAYED_FOR_TRANSLATION = False self._IS_RESET_BUTTON_DISPLAYED_FOR_WHISPER = False + self._IS_EASTER_EGG_ENABLED = False # Save Json Data ## Main Window diff --git a/controller.py b/controller.py index d8f1deee..5695aab0 100644 --- a/controller.py +++ b/controller.py @@ -27,6 +27,11 @@ def callbackFilepathConfigFile(): def callbackQuitVrct(): setMainWindowGeometry() +def callbackEnableEasterEgg(): + config.IS_EASTER_EGG_ENABLED = True + config.OVERLAY_UI_TYPE = "sakura" + view.printToTextbox_enableEasterEgg() + def setMainWindowGeometry(): PRE_SCALING_INT = strPctToInt(view.getPreUiScaling()) NEW_SCALING_INT = strPctToInt(config.UI_SCALING) @@ -994,6 +999,8 @@ def createMainWindow(splash): # set UI and callback view.register( common_registers={ + "callback_enable_easter_egg": callbackEnableEasterEgg, + "callback_update_software": callbackUpdateSoftware, "callback_restart_software": callbackRestartSoftware, "callback_filepath_logs": callbackFilepathLogs, diff --git a/locales/en.yml b/locales/en.yml index 500a00f3..83e01524 100644 --- a/locales/en.yml +++ b/locales/en.yml @@ -18,6 +18,7 @@ main_window: textbox_tab_system: System textbox_system_message: + enabled_easter_egg: Whoa! You caught us! There is something...like...easter-egg-ish function has enabled! enabled_translation: Translation feature is turned on. disabled_translation: Translation feature is turned off. enabled_voice2chatbox: Transcription from the microphone has started. diff --git a/view.py b/view.py index 840a2774..7165ca51 100644 --- a/view.py +++ b/view.py @@ -99,6 +99,8 @@ class View(): self.view_variable = SimpleNamespace( # Common + CALLBACK_ENABLE_EASTER_EGG=None, + CALLBACK_RESTART_SOFTWARE=None, CALLBACK_UPDATE_SOFTWARE=None, CALLBACK_OPEN_FILEPATH_LOGS=None, @@ -535,6 +537,8 @@ class View(): if common_registers is not None: + self.view_variable.CALLBACK_ENABLE_EASTER_EGG=common_registers.get("callback_enable_easter_egg", None) + self.view_variable.CALLBACK_UPDATE_SOFTWARE=common_registers.get("callback_update_software", None) self.view_variable.CALLBACK_RESTART_SOFTWARE=common_registers.get("callback_restart_software", None) self.view_variable.CALLBACK_OPEN_FILEPATH_LOGS=common_registers.get("callback_filepath_logs", None) @@ -737,6 +741,25 @@ class View(): self.setReceivedMessageFormat_EntryWidgets(config.RECEIVED_MESSAGE_FORMAT) self.setReceivedMessageFormatWithT_EntryWidgets(config.RECEIVED_MESSAGE_FORMAT_WITH_T) + + # Set Easter Egg + self.count = 0 + def clickedCounter(_e): + if self.count < 2: + self.count+=1 + print("Easter egg count:", self.count) + else: + print("Easter egg count:", self.count, "Easter egg has enabled.") + callFunctionIfCallable(self.view_variable.CALLBACK_ENABLE_EASTER_EGG) + print(config.OVERLAY_UI_TYPE) + + vrct_gui.sidebar_logo.bind( + "", + clickedCounter, + "+" + ) + + # Insert sample conversation for testing. # self._insertSampleConversationToTextbox() @@ -1616,6 +1639,9 @@ class View(): # Print To Textbox. + def printToTextbox_enableEasterEgg(self): + self._printToTextbox_Info(i18n.t("main_window.textbox_system_message.enabled_easter_egg")) + def printToTextbox_enableTranslation(self): self._printToTextbox_Info(i18n.t("main_window.textbox_system_message.enabled_translation")) def printToTextbox_disableTranslation(self):