protected override void OnSceneSave() { var povData = RealPOV.GetPovData(); if (povData != null) { var pluginData = new PluginData(); pluginData.data.Add(DictID, MessagePackSerializer.Serialize(povData)); SetExtendedData(pluginData); } }
protected override void OnSceneLoad(SceneOperationKind operation, ReadOnlyDictionary <int, ObjectCtrlInfo> loadedItems) { var extData = GetExtendedData(); if (extData == null) { return; } if (operation == SceneOperationKind.Load && extData.data.TryGetValue(DictID, out var povRawData)) { RealPOV.EnablePov(MessagePackSerializer.Deserialize <ScenePovData>((byte[])povRawData)); } }
protected override void Awake() { plugin = this; defaultFov = 90f; defaultViewOffset = 0.001f; base.Awake(); HideHead = Config.Bind(SECTION_GENERAL, "Hide character head", true, "Whene entering POV, hide the character's head. Prevents accessories and hair from obstructing the view."); Harmony.CreateAndPatchAll(GetType()); StudioSaveLoadApi.RegisterExtraBehaviour <SceneDataController>(GUID); SceneManager.sceneLoaded += (arg0, scene) => { hFlag = FindObjectOfType <HFlag>(); charaQueue = null; }; SceneManager.sceneUnloaded += arg0 => charaQueue = null; }