Example #1
0
        private void ExtendedSave_PoseBeingSaved(string poseName, PauseCtrl.FileInfo fileInfo, OCIChar ociChar, ExtendedSave.GameNames gameName)
        {
            var data = new PluginData();

            //Facial expression
#if PH
            data.data.Add(EyesPatternData, ociChar.charStatus.eyesPtn);
            data.data.Add(MouthPatternData, ociChar.charStatus.mouthPtn);
            data.data.Add(EyeOpenData, ociChar.charStatus.eyesOpenMax);
            data.data.Add(MouthOpenData, ociChar.oiCharInfo.mouthOpen);
#else
            data.data.Add(EyebrowPatternData, ociChar.charFileStatus.eyebrowPtn);
            data.data.Add(EyesPatternData, ociChar.charFileStatus.eyesPtn);
            data.data.Add(MouthPatternData, ociChar.charFileStatus.mouthPtn);
            data.data.Add(EyeOpenData, ociChar.charFileStatus.eyesOpenMax);
            data.data.Add(MouthOpenData, ociChar.oiCharInfo.mouthOpen);
#endif

            //Only save skirt FK if enabled
            if (ociChar.oiCharInfo.activeFK[SkirtFKIndex])
            {
                Dictionary <int, Vector3> skirtFK = new Dictionary <int, Vector3>();
                foreach (KeyValuePair <int, OIBoneInfo> item2 in ociChar.oiCharInfo.bones.Where(b => (OIBoneInfo.BoneGroup.Skirt & b.Value.group) != 0))
                {
                    skirtFK.Add(item2.Key, item2.Value.changeAmount.rot);
                }
                data.data.Add(SkirtFKData, MessagePackSerializer.Serialize(skirtFK));
            }

            //Joint correction
            data.data.Add(JointCorrectionData, MessagePackSerializer.Serialize(ociChar.oiCharInfo.expression));

            ExtendedSave.SetPoseExtendedDataById(PoseToolsData, data);
        }