|
@@ -328,7 +328,7 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
|
|
|
private void OnSceneLoaded(Scene scene, LoadSceneMode sceneMode)
|
|
|
{
|
|
|
currentScene = (Constants.Scene)scene.buildIndex;
|
|
|
- if (active) Deactivate();
|
|
|
+ if (active) Deactivate(true);
|
|
|
ResetCalcNearClip();
|
|
|
}
|
|
|
|
|
@@ -392,44 +392,54 @@ namespace COM3D2.MeidoPhotoStudio.Plugin
|
|
|
dailyPanel.SetActive(false);
|
|
|
}
|
|
|
|
|
|
- private void Deactivate()
|
|
|
+ private void Deactivate(bool force = false)
|
|
|
{
|
|
|
if (meidoManager.Busy || SceneManager.Busy) return;
|
|
|
|
|
|
SystemDialog sysDialog = GameMain.Instance.SysDlg;
|
|
|
|
|
|
- if (sysDialog.IsDecided)
|
|
|
+ SystemDialog.OnClick exit = () =>
|
|
|
+ {
|
|
|
+ sysDialog.Close();
|
|
|
+ ResetCalcNearClip();
|
|
|
+
|
|
|
+ meidoManager.Deactivate();
|
|
|
+ environmentManager.Deactivate();
|
|
|
+ propManager.Deactivate();
|
|
|
+ lightManager.Deactivate();
|
|
|
+ effectManager.Deactivate();
|
|
|
+ messageWindowManager.Deactivate();
|
|
|
+ windowManager.Deactivate();
|
|
|
+
|
|
|
+ Modal.Close();
|
|
|
+
|
|
|
+ GameObject dailyPanel = GameObject.Find("UI Root")?.transform.Find("DailyPanel")?.gameObject;
|
|
|
+ dailyPanel?.SetActive(true);
|
|
|
+ Configuration.Config.Save();
|
|
|
+ };
|
|
|
+
|
|
|
+ if (force || sysDialog.IsDecided)
|
|
|
{
|
|
|
uiActive = false;
|
|
|
active = false;
|
|
|
- string exitMessage = string.Format(Translation.Get("systemMessage", "exitConfirm"), pluginName);
|
|
|
- sysDialog.Show(exitMessage, SystemDialog.TYPE.OK_CANCEL,
|
|
|
- f_dgOk: () =>
|
|
|
- {
|
|
|
- sysDialog.Close();
|
|
|
- ResetCalcNearClip();
|
|
|
-
|
|
|
- meidoManager.Deactivate();
|
|
|
- environmentManager.Deactivate();
|
|
|
- propManager.Deactivate();
|
|
|
- lightManager.Deactivate();
|
|
|
- effectManager.Deactivate();
|
|
|
- messageWindowManager.Deactivate();
|
|
|
- windowManager.Deactivate();
|
|
|
-
|
|
|
- Modal.Close();
|
|
|
-
|
|
|
- GameObject dailyPanel = GameObject.Find("UI Root")?.transform.Find("DailyPanel")?.gameObject;
|
|
|
- dailyPanel?.SetActive(true);
|
|
|
- Configuration.Config.Save();
|
|
|
- },
|
|
|
- f_dgCancel: () =>
|
|
|
- {
|
|
|
- sysDialog.Close();
|
|
|
- uiActive = true;
|
|
|
- active = true;
|
|
|
- }
|
|
|
- );
|
|
|
+ if (force)
|
|
|
+ {
|
|
|
+ sysDialog.Close();
|
|
|
+ exit();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ string exitMessage = string.Format(Translation.Get("systemMessage", "exitConfirm"), pluginName);
|
|
|
+ sysDialog.Show(exitMessage, SystemDialog.TYPE.OK_CANCEL,
|
|
|
+ f_dgOk: exit,
|
|
|
+ f_dgCancel: () =>
|
|
|
+ {
|
|
|
+ sysDialog.Close();
|
|
|
+ uiActive = true;
|
|
|
+ active = true;
|
|
|
+ }
|
|
|
+ );
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|