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));
            }
        }
Exemple #3
0
        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;
        }