public static ChaControl GetCurrentCharacter(ADVScene advScene) { ChaControl result = null; advScene.SafeProc(advS => advS.Scenario.SafeProc(s => s.currentChara.SafeProc(cd => result = cd.chaCtrl))); return(result); }
public static void ADVSceneSetCameraPostfix(ADVScene __instance, TextScenario ___scenario) { VRLog.Info("Setting VR Camera to game camera (ADV SET CAM)"); foreach (ADV.CharaData chara in ___scenario.commandController.Characters.Values) { if (chara.heroine != null) { VRLog.Info($"Adjusting towards: {chara.heroine.chaFile.parameter.fullname}"); AdjustForFOVDifference(__instance.advCamera.transform, chara.heroine.transform, TITLE_FOV, GetVRFOV(), LOBBY_DISTANCE_ADJ_RATIO); } } VRPatcher.MoveVRCameraToTarget(__instance.advCamera.transform, false); }
internal static void ADVSceneOnDisablePostfix() { // ADV scene exited try { _advScene = null; GeBoAPI.Instance.AutoTranslationHelper.UnregisterOnTranslatingCallback(AdvTranslationCallback); _advTranslationCallbackRegistered = false; } catch (Exception err) { Logger.LogException(err, nameof(ADVSceneOnDisablePostfix)); } }
internal static void ADVSceneOnEnablePostfix(ADVScene __instance) { if (!TranslationHelper.Instance.CurrentCardLoadTranslationEnabled) { return; } // ADV scene started try { _advScene = __instance; if (_advTranslationCallbackRegistered) { return; } GeBoAPI.Instance.AutoTranslationHelper.RegisterOnTranslatingCallback(AdvTranslationCallback); _advTranslationCallbackRegistered = true; } catch (Exception err) { Logger.LogException(err, nameof(ADVSceneOnEnablePostfix)); _advTranslationCallbackRegistered = false; } }