Esempio n. 1
0
 public static void Postfix(OCIChar __instance, CharDefine.CoordinateType _type, bool _force)
 {
     if (onSetCoordinateInfo != null)
     {
         onSetCoordinateInfo(__instance, _type, _force);
     }
 }
Esempio n. 2
0
        public static bool PoseSavePatch(OCIChar _ociChar, ref string _name)
        {
            var filename = $"{_name}_{DateTime.Now.ToString("yyyy_MMdd_HHmm_ss_fff")}{PngExt}";
            var path     = Path.Combine(SavePath.Value, filename);
            var fileInfo = new PauseCtrl.FileInfo(_ociChar);

            try
            {
                using (var fileStream = new FileStream(path, FileMode.Create, FileAccess.Write))
                    using (var binaryWriter = new BinaryWriter(fileStream))
                    {
                        var buffer = Studio.Studio.Instance.gameScreenShot.CreatePngScreen(320, 180, false, false);
                        binaryWriter.Write(buffer);
                        binaryWriter.Write(PauseCtrl.saveIdentifyingCode);
                        binaryWriter.Write(PauseCtrl.saveVersion);
                        binaryWriter.Write(_ociChar.oiCharInfo.sex);
                        binaryWriter.Write(_name);
                        fileInfo.Save(binaryWriter);
                    }
            }
            catch (Exception ex)
            {
                Logger.Log(LogLevel.Message, "PosePng plugin save path has not been set properly");
                Logger.Log(LogLevel.Error, ex);
            }

            return(false);
        }
Esempio n. 3
0
            internal static void GetTreeNodeInfo(TreeNodeObject _node)
            {
                int OldTreeNodeObjID = CurTreeNodeObjID;

                if (_node == null || ListSelectNodes.Count == 0)
                {
                    if (OldTreeNodeObjID > -1)
                    {
                        CurOCIChar       = null;
                        CurTreeNodeObjID = -1;
                    }
                    return;
                }

                if (Studio.Studio.Instance.dicInfo.TryGetValue(_node, out ObjectCtrlInfo _info))
                {
                    CurTreeNodeObjID = StudioObjectExtensions.GetSceneId(_info);
                    if (OldTreeNodeObjID != CurTreeNodeObjID)
                    {
                        OCIChar selected = _info as OCIChar;
                        if (selected?.GetType() != null)
                        {
                            CurOCIChar = selected;
                        }
                        else
                        {
                            CurOCIChar = null;
                        }
                    }
                }
            }
Esempio n. 4
0
 public FileInfo(OCIChar _char = null)
 {
     if (_char == null)
     {
         return;
     }
     this.group          = _char.oiCharInfo.animeInfo.group;
     this.category       = _char.oiCharInfo.animeInfo.category;
     this.no             = _char.oiCharInfo.animeInfo.no;
     this.normalizedTime = _char.charAnimeCtrl.normalizedTime;
     this.enableIK       = _char.oiCharInfo.enableIK;
     for (int index = 0; index < this.activeIK.Length; ++index)
     {
         this.activeIK[index] = _char.oiCharInfo.activeIK[index];
     }
     foreach (KeyValuePair <int, OIIKTargetInfo> keyValuePair in _char.oiCharInfo.ikTarget)
     {
         this.dicIK.Add(keyValuePair.Key, keyValuePair.Value.changeAmount.Clone());
     }
     this.enableFK = _char.oiCharInfo.enableFK;
     for (int index = 0; index < this.activeFK.Length; ++index)
     {
         this.activeFK[index] = _char.oiCharInfo.activeFK[index];
     }
     OIBoneInfo.BoneGroup fkGroup = OIBoneInfo.BoneGroup.Body | OIBoneInfo.BoneGroup.RightLeg | OIBoneInfo.BoneGroup.LeftLeg | OIBoneInfo.BoneGroup.RightArm | OIBoneInfo.BoneGroup.LeftArm | OIBoneInfo.BoneGroup.RightHand | OIBoneInfo.BoneGroup.LeftHand | OIBoneInfo.BoneGroup.Neck | OIBoneInfo.BoneGroup.Breast;
     foreach (KeyValuePair <int, OIBoneInfo> keyValuePair in _char.oiCharInfo.bones.Where <KeyValuePair <int, OIBoneInfo> >((Func <KeyValuePair <int, OIBoneInfo>, bool>)(b => (fkGroup & b.Value.group) != (OIBoneInfo.BoneGroup) 0)))
     {
         this.dicFK.Add(keyValuePair.Key, keyValuePair.Value.changeAmount.Clone());
     }
     for (int index = 0; index < this.expression.Length; ++index)
     {
         this.expression[index] = _char.oiCharInfo.expression[index];
     }
 }
Esempio n. 5
0
 internal static void GetSiruFlags(ChaFileDefine.SiruParts _parts, OCIChar __instance, ref byte __result)
 {
     if (__instance is OCICharMale charMale)
     {
         __result = charMale.male.GetSiruFlags(_parts);
     }
 }
Esempio n. 6
0
            private static IEnumerator EnableFKIKCoroutine(OCIChar ociChar)
            {
                yield return(null);

                ChangingChara = false;
                EnableFKIK(ociChar);
            }
 // 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);
     }
 }
Esempio n. 8
0
            internal static void RegisterControls()
            {
                if (!JetPack.CharaStudio.Running)
                {
                    return;
                }

                _charaConfigWindow = _instance.gameObject.AddComponent <AccStateSyncUI>();

                Texture2D _iconTex = TextureUtils.LoadTexture(ResourceUtils.GetEmbeddedResource("toolbar_icon.png"));

                _ttConfigWindow = CustomToolbarButtons.AddLeftToolbarToggle(_iconTex, false, _value => _charaConfigWindow.enabled = _value);

                List <Button> _buttons = GameObject.Find("StudioScene/Canvas Main Menu/02_Manipulate/00_Chara/01_State/Viewport/Content/Clothing Details").GetComponentsInChildren <Button>().ToList();

                _buttons.Add(GameObject.Find($"StudioScene/Canvas Main Menu/02_Manipulate/00_Chara/01_State/Viewport/Content/Cos/Button Shoes 1").GetComponent <Button>());
                _buttons.Add(GameObject.Find($"StudioScene/Canvas Main Menu/02_Manipulate/00_Chara/01_State/Viewport/Content/Cos/Button Shoes 2").GetComponent <Button>());
                foreach (Button _button in _buttons)
                {
                    _button.onClick.AddListener(delegate()
                    {
                        _instance.StartCoroutine(StatusPanelUpdateCoroutine());
                    });
                }

                JetPack.CharaStudio.OnSelectNodeChange += (_sender, _args) =>
                {
                    _curTreeNodeObjID = JetPack.CharaStudio.CurTreeNodeObjID;
                    _curOCIChar       = JetPack.CharaStudio.CurOCIChar;
                    UpdateUI();
                };

                HarmonyLib.Harmony.CreateAndPatchAll(typeof(HooksCharaStudio));
            }
Esempio n. 9
0
        void Update()
        {
            if (InsideCharaStudio)
            {
                TreeNodeObject treeNodeObject = Studio.Studio.Instance.treeNodeCtrl.selectNode;
                if (treeNodeObject != null)
                {
                    ObjectCtrlInfo info;
                    if (Studio.Studio.Instance.dicInfo.TryGetValue(treeNodeObject, out info))
                    {
                        OCIChar selected = info as OCIChar;
                        if (selected != CurOCIChar)
                        {
                            CurOCIChar = selected;

//							Logger.LogWarning($"{StudioObjectExtensions.GetSceneId(info)}");
                            if (CurOCIChar?.GetType().ToString() != null)
                            {
                                UpdateStudioUI();
                            }
                        }
                    }
                }
            }
        }
Esempio n. 10
0
        private void ChangedOptionParam(float _value, int _kind)
        {
            if (this.isUpdateInfo)
            {
                return;
            }
            if (((IList <ObjectCtrlInfo>) this.arrayTarget).IsNullOrEmpty <ObjectCtrlInfo>())
            {
                this.DownOptionParam((BaseEventData)null, _kind);
            }
            float num = Mathf.Lerp(0.0f, 1f, _value);

            for (int index = 0; index < this.num; ++index)
            {
                OCIChar ociChar = this.arrayTarget[index] as OCIChar;
                if (_kind == 0)
                {
                    ociChar.animeOptionParam1 = num;
                }
                else
                {
                    ociChar.animeOptionParam2 = num;
                }
            }
            this.inputOptionParam[_kind].set_text(num.ToString("0.00"));
        }
Esempio n. 11
0
        public void UpdateInfo()
        {
            this.isUpdateInfo = true;
            this.arrayTarget  = (ObjectCtrlInfo[])null;
            bool    flag1          = this.m_ObjectCtrlInfo.kind == 0;
            OCIChar objectCtrlInfo = this.m_ObjectCtrlInfo as OCIChar;
            bool    flag2          = flag1 && objectCtrlInfo.isHAnime;

            this.sliderSpeed.set_value(this.m_ObjectCtrlInfo.animeSpeed);
            this.inputSpeed.set_text(this.m_ObjectCtrlInfo.animeSpeed.ToString("0.00"));
            ((Selectable)this.sliderPattern).set_interactable(flag1);
            ((Selectable)this.inputPattern).set_interactable(flag1);
            this.sliderPattern.set_value(!flag1 ? 0.5f : Mathf.InverseLerp(0.0f, 1f, objectCtrlInfo.animePattern));
            this.inputPattern.set_text(!flag1 ? "-" : objectCtrlInfo.animePattern.ToString("0.00"));
            for (int index = 0; index < 2; ++index)
            {
                ((Selectable)this.sliderOptionParam[index]).set_interactable(flag2);
                ((Selectable)this.inputOptionParam[index]).set_interactable(flag2);
                this.sliderOptionParam[index].set_value(!flag2 ? 0.5f : objectCtrlInfo.animeOptionParam[index]);
                this.inputOptionParam[index].set_text(!flag2 ? "-" : objectCtrlInfo.animeOptionParam[index].ToString("0.00"));
            }
            ((Selectable)this.toggleOption).set_interactable(flag1);
            this.toggleOption.set_isOn(flag1 && objectCtrlInfo.optionItemCtrl.visible);
            ((Selectable)this.toggleLoop).set_interactable(flag1);
            this.toggleLoop.set_isOn(flag1 && objectCtrlInfo.charAnimeCtrl.isForceLoop);
            ((Selectable)this.buttons[2]).set_interactable(flag1);
            ((Selectable)this.buttons[3]).set_interactable(flag1);
            this.isUpdateInfo = false;
        }
Esempio n. 12
0
 public static bool ApplyPrefix(OCIChar _char, PauseCtrl.FileInfo __instance)
 {
     _char.LoadAnime(__instance.group, __instance.category, __instance.no, __instance.normalizedTime);
     for (int i = 0; i < __instance.activeIK.Length; i++)
     {
         _char.ActiveIK((OIBoneInfo.BoneGroup)(1 << i), __instance.activeIK[i], false);
     }
     _char.ActiveKinematicMode(OICharInfo.KinematicMode.IK, __instance.enableIK, true);
     foreach (KeyValuePair <int, ChangeAmount> keyValuePair in __instance.dicIK)
     {
         _char.oiCharInfo.ikTarget[keyValuePair.Key].changeAmount.Copy(keyValuePair.Value, true, true, true);
     }
     for (int j = 0; j < __instance.activeFK.Length; j++)
     {
         _char.ActiveFK(FKCtrl.parts[j], __instance.activeFK[j], false);
     }
     _char.ActiveKinematicMode(OICharInfo.KinematicMode.FK, __instance.enableFK, true);
     foreach (KeyValuePair <int, ChangeAmount> keyValuePair2 in __instance.dicFK)
     {
         _char.oiCharInfo.bones.TryGetValue(keyValuePair2.Key, out OIBoneInfo value);
         value?.changeAmount.Copy(keyValuePair2.Value, true, true, true);
     }
     for (int k = 0; k < __instance.expression.Length; k++)
     {
         _char.EnableExpressionCategory(k, __instance.expression[k]);
     }
     return(false);
 }
Esempio n. 13
0
        static void Postfix(OCIChar __instance)
        {
            var bmm = __instance.charInfo.human.GetComponent <BMMHuman>();

            bmm.Name  = __instance.charStatus.name;
            bmm.reset = true;
        }
Esempio n. 14
0
 public static void Postfix(OCIChar __instance, string _path)
 {
     if (onLoadClothesFile != null)
     {
         onLoadClothesFile(__instance);
     }
 }
Esempio n. 15
0
 internal static void Apply(PauseCtrl.FileInfo __instance, OCIChar _char)
 {
     if (__instance.enableFK && __instance.enableIK)
     {
         EnableFKIK(_char);
     }
 }
Esempio n. 16
0
        private void UpdateBlend(List <BlendSets.Set> sets, OCIChar chara)
        {
            foreach (var button in blendSetList.content.GetComponentsInChildren <Image>())
            {
                button.gameObject.SetActive(false);
                Destroy(button);
            }

            foreach (var set in sets)
            {
                set.CreateActions(chara);

                var panel = UIUtility.CreatePanel("ShapePanel", blendSetList.content.transform);
                panel.gameObject.AddComponent <LayoutElement>().preferredHeight = elementSize;
                panel.color = new Color(1f, 1f, 1f, 1f);

                var text = UIUtility.CreateText("ShapeName", panel.transform, set.Name);
                text.transform.SetRect(0.01f, 0.01f, 0.44f, 0.99f);
                text.color     = Color.black;
                text.alignment = TextAnchor.MiddleCenter;

                var slider = UIUtility.CreateSlider("ShapeSlider", panel.transform);
                slider.transform.SetRect(0.45f, 0.01f, 0.99f, 0.99f);
                slider.maxValue = 100f;
                slider.minValue = 0f;
                slider.value    = set.Value;
                slider.onValueChanged.AddListener((value) => set.ChangeValue(value));
            }
        }
Esempio n. 17
0
 internal static void ActiveKinematicModePostfix(OCIChar __instance, ref bool __state)
 {
     if (__state && ChangingChara)
     {
         Instance.StartCoroutine(EnableFKIKCoroutine(__instance));
     }
 }
Esempio n. 18
0
 public CharaLoadEventArgs(OCIChar _chara, CharaLoadMode _mode, CharaLoadState _state)
 {
     ChaControl = _chara?.charInfo;
     OCIChar    = _chara;
     Mode       = _mode;
     State      = _state;
 }
 /// <summary>
 /// Fired when currently selected character changes and the controls need to be updated
 /// </summary>
 /// <param name="ociChar">Newly selected character</param>
 protected internal virtual void UpdateInfo(OCIChar ociChar)
 {
     foreach (var subItem in SubItems)
     {
         subItem.OnUpdateInfo(ociChar);
     }
 }
        public static void InitIKTarget(OCIChar _ociChar, bool _addInfo)
        {
            IKSolverFullBodyBiped solver     = (IKSolverFullBodyBiped)_ociChar.finalIK.solver;
            BipedReferences       references = (BipedReferences)_ociChar.finalIK.references;

            _ociChar.ikCtrl = _ociChar.preparation.IKCtrl;
            AddObjectAssist.AddIKTarget(_ociChar, _ociChar.ikCtrl, 0, solver.get_bodyEffector(), false, (Transform)references.pelvis);
            AddObjectAssist.AddIKTarget(_ociChar, _ociChar.ikCtrl, 1, solver.get_leftShoulderEffector(), false, (Transform)references.leftUpperArm);
            AddObjectAssist.AddIKTarget(_ociChar, _ociChar.ikCtrl, 2, solver.get_leftArmChain(), false, (Transform)references.leftForearm);
            AddObjectAssist.AddIKTarget(_ociChar, _ociChar.ikCtrl, 3, solver.get_leftHandEffector(), true, (Transform)references.leftHand);
            AddObjectAssist.AddIKTarget(_ociChar, _ociChar.ikCtrl, 4, solver.get_rightShoulderEffector(), false, (Transform)references.rightUpperArm);
            AddObjectAssist.AddIKTarget(_ociChar, _ociChar.ikCtrl, 5, solver.get_rightArmChain(), false, (Transform)references.rightForearm);
            AddObjectAssist.AddIKTarget(_ociChar, _ociChar.ikCtrl, 6, solver.get_rightHandEffector(), true, (Transform)references.rightHand);
            AddObjectAssist.AddIKTarget(_ociChar, _ociChar.ikCtrl, 7, solver.get_leftThighEffector(), false, (Transform)references.leftThigh);
            AddObjectAssist.AddIKTarget(_ociChar, _ociChar.ikCtrl, 8, solver.get_leftLegChain(), false, (Transform)references.leftCalf);
            AddObjectAssist.AddIKTarget(_ociChar, _ociChar.ikCtrl, 9, solver.get_leftFootEffector(), true, (Transform)references.leftFoot);
            AddObjectAssist.AddIKTarget(_ociChar, _ociChar.ikCtrl, 10, solver.get_rightThighEffector(), false, (Transform)references.rightThigh);
            AddObjectAssist.AddIKTarget(_ociChar, _ociChar.ikCtrl, 11, solver.get_rightLegChain(), false, (Transform)references.rightCalf);
            AddObjectAssist.AddIKTarget(_ociChar, _ociChar.ikCtrl, 12, solver.get_rightFootEffector(), true, (Transform)references.rightFoot);
            if (!_addInfo)
            {
                return;
            }
            _ociChar.ikCtrl.InitTarget();
        }
Esempio n. 21
0
 public static void SetSiruFlags(ChaFileDefine.SiruParts _parts, byte _state, OCIChar __instance)
 {
     if (__instance is OCICharMale charMale)
     {
         charMale.male.SetSiruFlags(_parts, _state);
     }
 }
        public static void InitLookAt(OCIChar _ociChar)
        {
            bool flag = _ociChar.oiCharInfo.lookAtTarget == null;

            if (flag)
            {
                _ociChar.oiCharInfo.lookAtTarget = new LookAtTargetInfo(Studio.Studio.GetNewIndex());
            }
            Transform lookAtTarget = _ociChar.preparation.LookAtTarget;

            if (flag)
            {
                _ociChar.oiCharInfo.lookAtTarget.changeAmount.pos = lookAtTarget.get_localPosition();
            }
            GuideObject _guideObject = Singleton <GuideObjectManager> .Instance.Add(lookAtTarget, _ociChar.oiCharInfo.lookAtTarget.dicKey);

            _guideObject.enableRot    = false;
            _guideObject.enableScale  = false;
            _guideObject.enableMaluti = false;
            _guideObject.scaleRate    = 0.5f;
            _guideObject.scaleSelect  = 0.25f;
            _guideObject.parentGuide  = _ociChar.guideObject;
            _guideObject.changeAmount.OnChange();
            _guideObject.mode          = GuideObject.Mode.World;
            _guideObject.moveCalc      = GuideMove.MoveCalc.TYPE2;
            _ociChar.lookAtInfo        = new OCIChar.LookAtInfo(_guideObject, _ociChar.oiCharInfo.lookAtTarget);
            _ociChar.lookAtInfo.active = false;
        }
Esempio n. 23
0
 public void Apply(OCIChar _char)
 {
     _char.LoadAnime(this.group, this.category, this.no, this.normalizedTime);
     for (int index = 0; index < this.activeIK.Length; ++index)
     {
         _char.ActiveIK((OIBoneInfo.BoneGroup)(1 << index), this.activeIK[index], false);
     }
     _char.ActiveKinematicMode(OICharInfo.KinematicMode.IK, this.enableIK, true);
     foreach (KeyValuePair <int, ChangeAmount> keyValuePair in this.dicIK)
     {
         _char.oiCharInfo.ikTarget[keyValuePair.Key].changeAmount.Copy(keyValuePair.Value, true, true, true);
     }
     for (int index = 0; index < this.activeFK.Length; ++index)
     {
         _char.ActiveFK(FKCtrl.parts[index], this.activeFK[index], false);
     }
     _char.ActiveKinematicMode(OICharInfo.KinematicMode.FK, this.enableFK, true);
     foreach (KeyValuePair <int, ChangeAmount> keyValuePair in this.dicFK)
     {
         _char.oiCharInfo.bones[keyValuePair.Key].changeAmount.Copy(keyValuePair.Value, true, true, true);
     }
     for (int _category = 0; _category < this.expression.Length; ++_category)
     {
         _char.EnableExpressionCategory(_category, this.expression[_category]);
     }
 }
Esempio n. 24
0
        /// <summary>
        /// Enable simultaneous kinematics for the specified OCIChar
        /// </summary>
        public static void EnableFKIK(OCIChar ociChar)
        {
            //Store the original neck look pattern
            var origPtn = ociChar.neckLookCtrl.ptnNo;

            ociChar.oiCharInfo.enableIK = true;
            ociChar.ActiveIK(BoneGroup.Body, ociChar.oiCharInfo.activeIK[0], true);
            ociChar.ActiveIK(BoneGroup.RightLeg, ociChar.oiCharInfo.activeIK[1], true);
            ociChar.ActiveIK(BoneGroup.LeftLeg, ociChar.oiCharInfo.activeIK[2], true);
            ociChar.ActiveIK(BoneGroup.RightArm, ociChar.oiCharInfo.activeIK[3], true);
            ociChar.ActiveIK(BoneGroup.LeftArm, ociChar.oiCharInfo.activeIK[4], true);
            ociChar.ActiveKinematicMode(OICharInfo.KinematicMode.IK, true, true);

            ociChar.oiCharInfo.activeFK[3] = false;
            ociChar.fkCtrl.enabled         = true;
            ociChar.oiCharInfo.enableFK    = true;

            for (int j = 0; j < FKCtrl.parts.Length; j++)
            {
                ociChar.ActiveFK(FKCtrl.parts[j], ociChar.oiCharInfo.activeFK[j], true);
            }

            //Restore the original neck look pattern which will have been overwritten
            if (origPtn != ociChar.neckLookCtrl.ptnNo)
            {
                ociChar.ChangeLookNeckPtn(origPtn);
            }
        }
Esempio n. 25
0
 public static void ChangeCharaPostfix(OCIChar __instance)
 {
     if (KK_FBIOpenUp._isenabled)
     {
         Patches.ChangeChara(__instance.charInfo);
     }
 }
Esempio n. 26
0
        public static void SetBlendShapesObj(OCIChar ocichar, Dictionary <string, Dictionary <string, float> > fullObj)
        {
            var stringWriter  = new StringWriter();
            var xmlTextWriter = new XmlTextWriter(stringWriter);

            xmlTextWriter.WriteStartElement("blendShapes");
            //self.GetBlendShapesEditor(ocichar).SaveXml(xmlTextWriter)
            xmlTextWriter.WriteStartElement("skinnedMeshes");
            foreach (var smeshes in fullObj.Keys)
            {
                xmlTextWriter.WriteStartElement("skinnedMesh");
                xmlTextWriter.WriteAttributeString("name", smeshes.ToString());
                foreach (var smesh in fullObj[smeshes].Keys)
                {
                    xmlTextWriter.WriteStartElement("blendShape");
                    xmlTextWriter.WriteAttributeString("index", smesh.ToString());
                    xmlTextWriter.WriteAttributeString("weight", fullObj[smeshes][smesh].ToString());
                    xmlTextWriter.WriteEndElement();
                }
                xmlTextWriter.WriteEndElement();
            }
            xmlTextWriter.WriteEndElement();
            xmlTextWriter.WriteEndElement();
            //print stringWriter.ToString()
            var text = stringWriter.ToString();

            //pass
            SetBlendShapesXML(ocichar, text);
        }
Esempio n. 27
0
        public static bool PoseLoadPatch(OCIChar _ociChar, ref string _path, ref bool __result)
        {
            if (Path.GetExtension(_path).ToLower() == PngExt)
            {
                var fileInfo = new PauseCtrl.FileInfo(null);
                using (var fileStream = new FileStream(_path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                    using (var binaryReader = new BinaryReader(fileStream))
                    {
                        PngFile.SkipPng(binaryReader);

                        if (string.Compare(binaryReader.ReadString(), PauseCtrl.saveIdentifyingCode) != 0)
                        {
                            __result = false;
                            return(false);
                        }

                        int ver = binaryReader.ReadInt32();
                        binaryReader.ReadInt32();
                        binaryReader.ReadString();
                        fileInfo.Load(binaryReader, ver);
                    }

                fileInfo.Apply(_ociChar);
                __result = true;
                return(false);
            }

            return(true);
        }
Esempio n. 28
0
 public static void Postfix(OCIChar __instance, string _path)
 {
     if (onChangeChara != null)
     {
         onChangeChara(__instance);
     }
 }
Esempio n. 29
0
 internal static void DisableFKIK(OCIChar ociChar)
 {
     ociChar.oiCharInfo.enableIK = false;
     ociChar.oiCharInfo.enableFK = false;
     ociChar.finalIK.enabled     = true;
     ociChar.ActiveKinematicMode(OICharInfo.KinematicMode.IK, false, true);
     ociChar.ActiveKinematicMode(OICharInfo.KinematicMode.FK, false, true);
 }
Esempio n. 30
0
 private void OnDeleteWork(ObjectCtrlInfo info)
 {
     if (info.kind == 0)
     {
         currentCharaOCI  = null;
         currentCharaInfo = null;
     }
 }