示例#1
0
        public static byte[] GetBytes(Data.RingShapeParameter value, ExporterVersion version)
        {
            List <byte[]> data = new List <byte[]>();

            data.Add(BitConverter.GetBytes((int)value.Type.Value));

            if (value.Type.Value == Data.RingShapeType.Donut)
            {
            }
            else if (value.Type.Value == Data.RingShapeType.Crescent)
            {
                data.Add(BitConverter.GetBytes(value.Crescent.StartingFade.Value));
                data.Add(BitConverter.GetBytes(value.Crescent.EndingFade.Value));

                data.Add(((int)value.Crescent.StartingAngle.Value).GetBytes());

                if (value.Crescent.StartingAngle.Value == Data.FixedRandomEasingType.Fixed)
                {
                    data.Add(value.Crescent.StartingAngle_Fixed.Value.GetBytes());
                }
                else if (value.Crescent.StartingAngle.Value == Data.FixedRandomEasingType.Random)
                {
                    data.Add(value.Crescent.StartingAngle_Random.Max.GetBytes());
                    data.Add(value.Crescent.StartingAngle_Random.Min.GetBytes());
                }
                if (value.Crescent.StartingAngle.Value == Data.FixedRandomEasingType.Easing)
                {
                    Utils.ExportEasing(value.Crescent.StartingAngle_Easing, 1.0f, data, version, version >= ExporterVersion.Ver16Alpha9);
                }

                data.Add(((int)value.Crescent.EndingAngle.Value).GetBytes());

                if (value.Crescent.EndingAngle.Value == Data.FixedRandomEasingType.Fixed)
                {
                    data.Add(value.Crescent.EndingAngle_Fixed.Value.GetBytes());
                }
                else if (value.Crescent.EndingAngle.Value == Data.FixedRandomEasingType.Random)
                {
                    data.Add(value.Crescent.EndingAngle_Random.Max.GetBytes());
                    data.Add(value.Crescent.EndingAngle_Random.Min.GetBytes());
                }
                if (value.Crescent.EndingAngle.Value == Data.FixedRandomEasingType.Easing)
                {
                    Utils.ExportEasing(value.Crescent.EndingAngle_Easing, 1.0f, data, version, version >= ExporterVersion.Ver16Alpha9);
                }
            }

            return(data.SelectMany(_ => _).ToArray());
        }
        public static byte[] GetBytes(Data.RingShapeParameter value)
        {
            List <byte[]> data = new List <byte[]>();

            data.Add(BitConverter.GetBytes((int)value.Type.Value));

            if (value.Type.Value == Data.RingShapeType.Donut)
            {
            }
            else if (value.Type.Value == Data.RingShapeType.Crescent)
            {
                data.Add(BitConverter.GetBytes(value.Crescent.StartingFade.Value));
                data.Add(BitConverter.GetBytes(value.Crescent.EndingFade.Value));

                data.Add(((int)value.Crescent.StartingAngle.Value).GetBytes());

                if (value.Crescent.StartingAngle.Value == Data.FixedRandomEasingType.Fixed)
                {
                    data.Add(value.Crescent.StartingAngle_Fixed.Value.GetBytes());
                }
                else if (value.Crescent.StartingAngle.Value == Data.FixedRandomEasingType.Random)
                {
                    data.Add(value.Crescent.StartingAngle_Random.Max.GetBytes());
                    data.Add(value.Crescent.StartingAngle_Random.Min.GetBytes());
                }
                if (value.Crescent.StartingAngle.Value == Data.FixedRandomEasingType.Easing)
                {
                    var easing = Utl.MathUtl.Easing(
                        (float)value.Crescent.StartingAngle_Easing.StartSpeed.Value,
                        (float)value.Crescent.StartingAngle_Easing.EndSpeed.Value);

                    data.Add(value.Crescent.StartingAngle_Easing.Start.Max.GetBytes());
                    data.Add(value.Crescent.StartingAngle_Easing.Start.Min.GetBytes());
                    data.Add(value.Crescent.StartingAngle_Easing.End.Max.GetBytes());
                    data.Add(value.Crescent.StartingAngle_Easing.End.Min.GetBytes());
                    data.Add(BitConverter.GetBytes(easing[0]));
                    data.Add(BitConverter.GetBytes(easing[1]));
                    data.Add(BitConverter.GetBytes(easing[2]));
                }

                data.Add(((int)value.Crescent.EndingAngle.Value).GetBytes());

                if (value.Crescent.EndingAngle.Value == Data.FixedRandomEasingType.Fixed)
                {
                    data.Add(value.Crescent.EndingAngle_Fixed.Value.GetBytes());
                }
                else if (value.Crescent.EndingAngle.Value == Data.FixedRandomEasingType.Random)
                {
                    data.Add(value.Crescent.EndingAngle_Random.Max.GetBytes());
                    data.Add(value.Crescent.EndingAngle_Random.Min.GetBytes());
                }
                if (value.Crescent.EndingAngle.Value == Data.FixedRandomEasingType.Easing)
                {
                    var easing = Utl.MathUtl.Easing(
                        (float)value.Crescent.EndingAngle_Easing.StartSpeed.Value,
                        (float)value.Crescent.EndingAngle_Easing.EndSpeed.Value);

                    data.Add(value.Crescent.EndingAngle_Easing.Start.Max.GetBytes());
                    data.Add(value.Crescent.EndingAngle_Easing.Start.Min.GetBytes());
                    data.Add(value.Crescent.EndingAngle_Easing.End.Max.GetBytes());
                    data.Add(value.Crescent.EndingAngle_Easing.End.Min.GetBytes());
                    data.Add(BitConverter.GetBytes(easing[0]));
                    data.Add(BitConverter.GetBytes(easing[1]));
                    data.Add(BitConverter.GetBytes(easing[2]));
                }
            }

            return(data.SelectMany(_ => _).ToArray());
        }