// Token: 0x0600000A RID: 10 RVA: 0x0000244C File Offset: 0x0000064C
 public static void OnSave(XmlElement rootElement)
 {
     try
     {
         rootElement.SetAttribute("Version", "1");
         KKVMDPlayExtSavePlugin.saveLoadForScene.OnSave(rootElement);
         Studio.Studio instance = Singleton <Studio.Studio> .Instance;
         new List <OCIChar>();
         foreach (KeyValuePair <int, ObjectCtrlInfo> keyValuePair in from e in instance.dicObjectCtrl
                  orderby e.Key
                  select e)
         {
             if (keyValuePair.Value is OCIChar)
             {
                 OCIChar    ocichar    = keyValuePair.Value as OCIChar;
                 XmlElement xmlElement = KKVMDPlayExtSavePlugin.AddVMDCharaInfoElem(rootElement, ocichar, ocichar.charInfo);
                 if (xmlElement != null)
                 {
                     xmlElement.SetAttribute("dicKey", keyValuePair.Key.ToString());
                 }
             }
         }
     }
     catch (Exception value)
     {
         Console.WriteLine(value);
     }
 }
Example #2
0
 public static void LoadScenePreHook(Studio.Studio __instance)
 {
     if (VRManager.Instance.Mode is StudioStandingMode)
     {
         (VR.Manager.Interpreter as KKCharaStudioInterpreter).ForceResetVRMode();
     }
 }
Example #3
0
        internal static void RefreshVisibleLoopPatch(TreeNodeObject _source)
        {
            try
            {
                if (TranslationHelper.Instance == null || !IllusionStudio.IsInstance() ||
                    !TranslationHelper.Instance.CurrentCardLoadTranslationEnabled ||
                    !Singleton <IllusionStudio> .Instance.dicInfo.TryGetValue(_source, out var ctrlInfo) ||
                    !(ctrlInfo is OCIChar oChar))
                {
                    return;
                }


                void Handler(string translatedName)
                {
                    if (string.IsNullOrEmpty(translatedName))
                    {
                        return;
                    }
                    _source.SafeProc(s => s.textName = translatedName);
                }

                oChar.charInfo.SafeProcObject(ci =>
                                              ci.chaFile.SafeProc(cf =>
                                                                  cf.TranslateFullName(Handler)));
            }

            catch (Exception err)
            {
                Logger.LogException(err, _source, nameof(RefreshVisibleLoopPatch));
            }
        }
Example #4
0
        internal static void RefreshVisibleLoopPatch(TreeNodeObject _source)
        {
            if (TranslationHelper.Instance == null || !IllusionStudio.IsInstance() ||
                !TranslationHelper.Instance.CurrentCardLoadTranslationEnabled ||
                !Singleton <IllusionStudio> .Instance.dicInfo.TryGetValue(_source, out var ctrlInfo) ||
                !(ctrlInfo is OCIChar oChar))
            {
                return;
            }

            var chaFile = oChar.charInfo?.chaFile;

            if (chaFile == null)
            {
                return;
            }

            Configuration.UpdateTreeForChar(chaFile);

            var name = chaFile.GetFullName();

            if (string.IsNullOrEmpty(name))
            {
                return;
            }
            _source.textName = name;
        }
Example #5
0
        public static void SaveScenePrefix(Studio.Studio __instance)
        {
            Dictionary <int, ObjectInfo> dicObject       = __instance.sceneInfo.dicObject;
            List <TreeNodeObject>        treeNodeObj     = __instance.treeNodeCtrl.GetField("m_TreeNodeObject") as List <TreeNodeObject>;
            Dictionary <int, ObjectInfo> resultDicObject = new Dictionary <int, ObjectInfo>();

            foreach (TreeNodeObject t in treeNodeObj)
            {
                if (null == t)
                {
                    continue;
                }

                if (Singleton <Studio.Studio> .Instance.dicInfo.TryGetValue(t, out ObjectCtrlInfo item) &&
                    dicObject.TryGetValue(item.objectInfo.dicKey, out ObjectInfo objInfo) &&
                    null != objInfo &&
                    objInfo == item.objectInfo
                    )
                {
                    resultDicObject.Add(objInfo.dicKey, objInfo);
                }
            }

            Extension.Logger.LogDebug($"{dicObject.Count} -> {resultDicObject.Count}");

            __instance.sceneInfo.dicObject = resultDicObject;
        }
        protected override void OnSceneLoad(SceneOperationKind operation, ReadOnlyDictionary <int, ObjectCtrlInfo> loadedItems)
        {
            Studio.Studio studio = GetStudio();
            AIGraphics    parent = AIGraphics.Instance;

            parent?.SkyboxManager?.SetupDefaultReflectionProbe();
            parent?.PresetManager?.Load(GetExtendedData());
        }
 public void hsneo_dump_camera2(StreamWriter file)
 {
     Studio.Studio                   studio = Studio.Studio.Instance;
     Studio.CameraControl            c      = studio.cameraCtrl;
     Studio.CameraControl.CameraData cdata  = cameraData;
     file.WriteLine(String.Format("game.move_camera(pos=%s, distance=%s, rotate=%s)", cdata.pos.ToString(), cdata.distance.ToString(), cdata.rotate.ToString()));
     file.WriteLine(String.Format("# for VN Scene Script %s", this.camera_calcstr_for_vnscene()));
     file.WriteLine(String.Format("# other one: 'cam': {{ 'goto_pos': (({0:F3}, {1:F3}, {2:F3}), ({3:F3}, {4:F3}, {5:F3}), ({6:F3}, {7:F3}, {8:F3})) }}, ", cdata.pos.x, cdata.pos.y, cdata.pos.z, cdata.distance.x, cdata.distance.y, cdata.distance.z, cdata.rotate.x, cdata.rotate.y, cdata.rotate.z));
 }
        private void OnLevelWasLoaded(int level)
        {
            studio = Singleton <Studio.Studio> .Instance;
            if (studio == null)
            {
                return;
            }
            Transform cameraMenuRootT = studio.transform.Find("Canvas System Menu/02_Camera");

            _instance.Init(cameraMenuRootT);
        }
        /*        public string calc_py_path()
         *      {
         *          var rootfolder = Path.GetFullPath(Path.Combine(Application.dataPath, ".."));
         *          // os.path.splitext(__file__)[0] + '.ini'
         *          var pydirname = path.dirname(@__file__);
         *          return path.relpath(pydirname, rootfolder);
         *      }
         */

        //
        //         camobj = self.get_camera_num(camnum)
        //         self.move_camera_obj(camobj)
        //
        public void to_camera(int camnum)
        {
            Studio.Studio studio = Studio.Studio.Instance;
            SceneInfo     si     = studio.sceneInfo;

            Studio.CameraControl.CameraData[] cdatas = si.cameraData;

            Studio.CameraControl.CameraData cdata = cameraData;
            //var targetInfos = trav.Field("listBones");

            //CameraData cdata = c.cameraData;
            cdata.Copy(cdatas[camnum - 1]);
        }
            private static bool Studio_InitScene(Studio.Studio __instance, bool _close, ref BackgroundCtrl ___m_BackgroundCtrl)
            {
                if (IsStudio)
                {
                    return(true);
                }

                __instance.ChangeCamera(null, false, true);
                Traverse.Create(__instance).Property("cameraCount").SetValue(0);
                __instance.treeNodeCtrl.DeleteAllNode();
                foreach (KeyValuePair <TreeNodeObject, ObjectCtrlInfo> item in __instance.dicInfo)
                {
                    switch (item.Value.kind)
                    {
                    case 0:
                    {
                        OCIChar oCIChar = item.Value as OCIChar;
                        oCIChar?.StopVoice();
                        break;
                    }

                    case 4:
                    {
                        OCIRoute oCIRoute = item.Value as OCIRoute;
                        oCIRoute?.DeleteLine();
                        break;
                    }
                    }
                    Destroy(item.Value.guideObject.transformTarget.gameObject);
                }
                __instance.dicInfo.Clear();
                __instance.dicChangeAmount.Clear();
                __instance.dicObjectCtrl.Clear();
                Singleton <Map> .Instance.ReleaseMap();

                __instance.cameraCtrl.CloerListCollider();
                __instance.bgmCtrl.Stop();
                __instance.envCtrl.Stop();
                __instance.outsideSoundCtrl.Stop();
                __instance.sceneInfo.Init();
                __instance.cameraCtrl.Reset(0);
                __instance.cameraLightCtrl.Reflect();
                __instance.onChangeMap?.Invoke();
                if (_close)
                {
                    Destroy(___m_BackgroundCtrl);
                    ___m_BackgroundCtrl = null;
                }
                return(false);
            }
        private void OnLevelWasLoaded(int level)
        {
            studio = Singleton <Studio.Studio> .Instance;
            if (studio == null)
            {
                return;
            }
            Transform objectListCanvas = studio.gameObject.transform.Find("Canvas Object List");

            _instance.Init(objectListCanvas);
            bgTex = new Texture2D(1, 1, TextureFormat.ARGB32, false);
            bgTex.SetPixel(0, 0, new Color(0.3f, 0.3f, 0.3f, 1f));
            bgTex.Apply();
        }
Example #12
0
        private void Update()
        {
            if (togglePOV.Value.IsDown())
            {
                if (studio == null || cc == null)
                {
                    studio = Singleton <Studio.Studio> .Instance;
                    if (studio == null)
                    {
                        return;
                    }

                    cc = studio.cameraCtrl;
                    if (cc == null)
                    {
                        return;
                    }
                }

                if (!toggle)
                {
                    StartPOV();
                }
                else
                {
                    StopPOV();
                }
            }

            if (!toggle)
            {
                return;
            }

            if (chara == null)
            {
                StopPOV();
                return;
            }

            if (Input.GetKey(KeyCode.Mouse0))
            {
                var x = Input.GetAxis("Mouse X") * sensitivity.Value;
                var y = -Input.GetAxis("Mouse Y") * sensitivity.Value;

                viewRotation += new Vector3(y, x, 0f);
            }

            StartCoroutine(ApplyPOV());
        }
            private static bool Studio_LoadScene(Studio.Studio __instance, string _path, ref bool __result, ref BackgroundCtrl ___m_BackgroundCtrl, ref Studio.CameraControl ___m_CameraCtrl)
            {
                if (IsStudio)
                {
                    return(true);
                }

                if (!File.Exists(_path))
                {
                    __result = false;
                    return(false);
                }
                __instance.InitScene(false);
                var sceneInfo = new SceneInfo();

                Traverse.Create(__instance).Property("sceneInfo").SetValue(sceneInfo);
                if (!sceneInfo.Load(_path))
                {
                    __result = false;
                    return(false);
                }
                LoadingScene = true;
                AddObjectAssist.LoadChild(sceneInfo.dicObject);
                ChangeAmount source = sceneInfo.caMap.Clone();

                __instance.AddMap(sceneInfo.map, false, false);
                sceneInfo.caMap.Copy(source);
                Singleton <MapCtrl> .Instance.Reflect();

                __instance.bgmCtrl.Play(__instance.bgmCtrl.no);
                __instance.envCtrl.Play(__instance.envCtrl.no);
                __instance.outsideSoundCtrl.Play(__instance.outsideSoundCtrl.fileName);
                //Add the component if it doesn't exist
                if (___m_BackgroundCtrl == null)
                {
                    ___m_BackgroundCtrl = Camera.main.gameObject.AddComponent <BackgroundCtrl>();
                }
                __instance.treeNodeCtrl.RefreshHierachy();
                if (sceneInfo.cameraSaveData != null)
                {
                    ___m_CameraCtrl.Import(sceneInfo.cameraSaveData);
                }
                __instance.cameraLightCtrl.Reflect();
                sceneInfo.dataVersion = sceneInfo.version;
                LoadingScene          = false;

                __result = true;
                return(false);
            }
            private static bool Studio_Awake(Studio.Studio __instance, ref Control ___xmlCtrl)
            {
                if (IsStudio)
                {
                    return(true);
                }

                //if (CheckInstance())
                DontDestroyOnLoad(__instance.gameObject);
                Traverse.Create(__instance).Property("optionSystem").SetValue(new OptionSystem("Option"));
                ___xmlCtrl = new Control("studio", "option.xml", "Option", Studio.Studio.optionSystem);
                __instance.LoadOption();

                return(false);
            }
            private static bool Studio_AddLight(Studio.Studio __instance, int _no)
            {
                if (IsStudio)
                {
                    return(true);
                }
                if (!__instance.sceneInfo.isLightCheck)
                {
                    return(true);
                }

                AddObjectLight.Add(_no);
                Singleton <UndoRedoManager> .Instance.Clear();

                return(false);
            }
Example #16
0
        static bool Studio_AddLight_Prefix(Studio.Studio __instance, int _no)
        {
            var      instance = Traverse.Create(__instance);
            OCILight ocilight = Studio.AddObjectLight.Add(_no);

            Singleton <UndoRedoManager> .Instance.Clear();

            if (Studio.Studio.optionSystem.autoHide)
            {
                RootButtonCtrl ctrl = instance.Property <RootButtonCtrl>("rootButtonCtrl").Value;
                ctrl.OnClick(-1);
            }
            if (Studio.Studio.optionSystem.autoSelect && ocilight != null)
            {
                TreeNodeCtrl ctrl = instance.Field("m_TreeNodeCtrl").GetValue <TreeNodeCtrl>();
                ctrl.SelectSingle(ocilight.treeNodeObject, true);
            }
            Graphics.Instance?.LightManager?.Light();
            return(false);
        }
Example #17
0
 public static void Postfix(Studio.Studio __instance)
 {
     foreach (KeyValuePair <int, int> pair in SceneInfo_Import_Patches._newToOldKeys)
     {
         ObjectCtrlInfo source;
         if (__instance.dicObjectCtrl.TryGetValue(pair.Value, out source) == false)
         {
             continue;
         }
         ObjectCtrlInfo destination;
         if (__instance.dicObjectCtrl.TryGetValue(pair.Key, out destination) == false)
         {
             continue;
         }
         if (source is OCIChar && destination is OCIChar || source is OCIItem && destination is OCIItem)
         {
             PHPE._self.OnDuplicate(source, destination);
         }
     }
 }
            private static bool Studio_Init(Studio.Studio __instance, ref InputField ____inputFieldNow, ref TMP_InputField ____inputFieldTMPNow)
            {
                if (IsStudio)
                {
                    return(true);
                }

                Traverse.Create(__instance).Property("sceneInfo").SetValue(new SceneInfo());
                __instance.cameraLightCtrl.Init();
                ____inputFieldNow    = null;
                ____inputFieldTMPNow = null;
                TreeNodeCtrl treeNodeCtrl = __instance.treeNodeCtrl;

                treeNodeCtrl.onDelete = (Action <TreeNodeObject>)Delegate.Combine(treeNodeCtrl.onDelete, new Action <TreeNodeObject>(__instance.OnDeleteNode));
                TreeNodeCtrl treeNodeCtrl2 = __instance.treeNodeCtrl;

                treeNodeCtrl2.onParentage = (Action <TreeNodeObject, TreeNodeObject>)Delegate.Combine(treeNodeCtrl2.onParentage, new Action <TreeNodeObject, TreeNodeObject>(__instance.OnParentage));

                return(false);
            }
        // Token: 0x06000009 RID: 9 RVA: 0x000022C0 File Offset: 0x000004C0
        public static void OnLoad(XmlElement rootElement)
        {
            Studio.Studio  instance = Singleton <Studio.Studio> .Instance;
            List <OCIChar> list     = new List <OCIChar>();

            foreach (KeyValuePair <int, ObjectCtrlInfo> keyValuePair in from e in instance.dicObjectCtrl
                     orderby e.Key
                     select e)
            {
                if (keyValuePair.Value is OCIChar)
                {
                    list.Add(keyValuePair.Value as OCIChar);
                }
            }
            foreach (object obj in rootElement.ChildNodes)
            {
                XmlElement xmlElement = (XmlElement)obj;
                if (xmlElement.Name == "VMDCharaData")
                {
                    int            num            = int.Parse(xmlElement.GetAttribute("dicKey"));
                    ObjectCtrlInfo objectCtrlInfo = null;
                    instance.dicObjectCtrl.TryGetValue(num, out objectCtrlInfo);
                    if (objectCtrlInfo == null)
                    {
                        Logger.Log(LogLevel.Error, string.Format("Character not found. dicKey: {0}", num));
                    }
                    else if (objectCtrlInfo is OCIChar)
                    {
                        KKVMDPlayExtSavePlugin.saveLoadForChara.LoadVMDAnimInfo(xmlElement, objectCtrlInfo);
                    }
                }
                else if (xmlElement.Name == "VMDSceneData")
                {
                    KKVMDPlayExtSavePlugin.saveLoadForScene.LoadVMDSceneDataInfo(xmlElement);
                }
                else
                {
                    Logger.Log(LogLevel.Error, string.Format("Unknown Tag found. Load data {0}", KKVMDPlayExtSavePlugin.ToString(xmlElement)));
                }
            }
        }
Example #20
0
        //public static HSNeoOCI create_from(ObjectCtrlInfo objctrl) { return new HSNeoOCI(objctrl); }

        public static NeoOCI create_from_treenode(TreeNodeObject treenode)
        {
            if (treenode == null)
            {
                return(null);
            }
            Studio.Studio  studio   = Studio.Studio.Instance;
            var            dobjctrl = studio.dicInfo;
            ObjectCtrlInfo obj      = dobjctrl[treenode];

            if (obj != null)
            {
                if (obj is OCIItem item)
                {
                    return(create_from(item));
                }
                else if (obj is OCIFolder fld)
                {
                    return(create_from(fld));
                }
                else if (obj is OCIChar chara)
                {
                    return(create_from(chara));
                }
                else if (obj is OCIRoute route)
                {
                    return(create_from(route));
                }
                else if (obj is OCILight light)
                {
                    return(create_from(light));
                }
                else
                {
                    return(null);
                }
            }
            return(null);
        }
        new public VNCamera.CamData get_camera_num(int camnum)
        {
            Studio.CameraControl.CameraData cdata;
            Studio.Studio studio = this.studio;
            SceneInfo     si     = studio.sceneInfo;

            Studio.CameraControl.CameraData[] cdatas = si.cameraData;
            if (camnum == 0)
            {
                // 0 camera is current camera. It may be interested due to some reasons
                var c = studio.cameraCtrl;
                cdata = cameraData;
            }
            else
            {
                cdata = cdatas[camnum - 1];
            }
            var camobj = new CamData(cdata.pos, cdata.rotate, cdata.distance, cdata.parse);

            //print camobj
            return(camobj);
        }
Example #22
0
        public static List <Folder> find_all_startswith(string name)
        {
            Studio.Studio studio = Studio.Studio.Instance;
            List <Folder> ar     = new List <Folder>();
            Dictionary <TreeNodeObject, ObjectCtrlInfo> dobjctrl = studio.dicInfo;

            foreach (TreeNodeObject key in dobjctrl.Keys)
            {
                // key is TreeNodeObject
                ObjectCtrlInfo objctrl = dobjctrl[key];
                if (objctrl is OCIFolder folder)
                {
                    string txt = folder.name;

                    if (txt.StartsWith(name))
                    {
                        ar.Add(new Folder(folder));
                        // this will process for all folders we found
                    }
                }
            }
            return(ar);
        }
Example #23
0
 public void delete()
 {
     Studio.Studio studio = Studio.Studio.Instance;
     studio.treeNodeCtrl.DeleteNode(this.treeNodeObject);
 }
Example #24
0
 public void set_parent_treenodeobject(TreeNodeObject parentTreeNode)
 {
     Studio.Studio studio = Studio.Studio.Instance;
     studio.treeNodeCtrl.SetParent(this.treeNodeObject, parentTreeNode);
 }
Example #25
0
 public static NeoOCI create_from_selected()
 {
     Studio.Studio studio = Studio.Studio.Instance;
     return(NeoOCI.create_from_treenode(studio.treeNodeCtrl.selectNode));
 }