Exemplo n.º 1
0
        private static void AddRibbonData(Data.RendererValues value, List <byte[]> data)
        {
            var ribbonParameter = value.Ribbon;

            // texture uv mode from 1.5
            data.Add(TextureUVTypeParameter.GetBytes(value.TextureUVType));

            data.Add((ribbonParameter.ViewpointDependent ? 1 : 0).GetBytes());

            AddColorAll();
            AddPartialColor();
            AddPosition();

            data.Add(BitConverter.GetBytes(ribbonParameter.SplineDivision.Value));

            void AddColorAll()
            {
                data.Add(ribbonParameter.ColorAll);

                if (ribbonParameter.ColorAll.Value == Data.RendererValues.RibbonParamater.ColorAllType.Fixed)
                {
                    var color_all = (byte[])ribbonParameter.ColorAll_Fixed;
                    data.Add(color_all);
                }
                else if (ribbonParameter.ColorAll.Value == Data.RendererValues.RibbonParamater.ColorAllType.Random)
                {
                    var color_random = (byte[])ribbonParameter.ColorAll_Random;
                    data.Add(color_random);
                }
                else if (ribbonParameter.ColorAll.Value == Data.RendererValues.RibbonParamater.ColorAllType.Easing)
                {
                    AddColorEasing(data, ribbonParameter.ColorAll_Easing);
                }
            }

            void AddPartialColor()
            {
                data.Add(ribbonParameter.Color);

                if (ribbonParameter.Color.Value == Data.RendererValues.RibbonParamater.ColorType.Default)
                {
                }
                else if (ribbonParameter.Color.Value == Data.RendererValues.RibbonParamater.ColorType.Fixed)
                {
                    var color_l = (byte[])ribbonParameter.Color_Fixed_L;
                    var color_r = (byte[])ribbonParameter.Color_Fixed_R;

                    data.Add(color_l);
                    data.Add(color_r);
                }
            }

            void AddPosition()
            {
                data.Add(BitConverter.GetBytes((int)Data.RendererValues.RibbonParamater.PositionType.Fixed));

                if (ribbonParameter.Position.Value == Data.RendererValues.RibbonParamater.PositionType.Default)
                {
                    data.Add(BitConverter.GetBytes(-0.5f));
                    data.Add(BitConverter.GetBytes(+0.5f));
                }
                else if (ribbonParameter.Position.Value == Data.RendererValues.RibbonParamater.PositionType.Fixed)
                {
                    var pos_l = (byte[])ribbonParameter.Position_Fixed_L.GetBytes();
                    var pos_r = (byte[])ribbonParameter.Position_Fixed_R.GetBytes();
                    data.Add(pos_l);
                    data.Add(pos_r);
                }
            }
        }
Exemplo n.º 2
0
        private static void AddRingData(Data.RendererValues value, List <byte[]> data)
        {
            var ringParameter = value.Ring;

            data.Add(ringParameter.RenderingOrder);
            data.Add(ringParameter.Billboard);

            // from 1.5
            data.Add(RingShapeParameter.GetBytes(ringParameter.RingShape));

            data.Add(ringParameter.VertexCount.Value.GetBytes());

            AddViewingAngle();

            AddLocation(ringParameter.Outer,
                        ringParameter.Outer_Fixed,
                        ringParameter.Outer_PVA,
                        ringParameter.Outer_Easing);
            AddLocation(ringParameter.Inner,
                        ringParameter.Inner_Fixed,
                        ringParameter.Inner_PVA,
                        ringParameter.Inner_Easing);

            AddCenterRatio();

            AddColor(ringParameter.OuterColor,
                     ringParameter.OuterColor_Fixed,
                     ringParameter.OuterColor_Random,
                     ringParameter.OuterColor_Easing);
            AddColor(ringParameter.CenterColor,
                     ringParameter.CenterColor_Fixed,
                     ringParameter.CenterColor_Random,
                     ringParameter.CenterColor_Easing);
            AddColor(ringParameter.InnerColor,
                     ringParameter.InnerColor_Fixed,
                     ringParameter.InnerColor_Random,
                     ringParameter.InnerColor_Easing);

            void AddViewingAngle()
            {
                // it will removed

                data.Add(ringParameter.ViewingAngle);
                if (ringParameter.ViewingAngle.GetValue() == Data.RendererValues.RingParamater.ViewingAngleType.Fixed)
                {
                    data.Add(ringParameter.ViewingAngle_Fixed.Value.GetBytes());
                }
                else if (ringParameter.ViewingAngle.GetValue() == Data.RendererValues.RingParamater.ViewingAngleType.Random)
                {
                    data.Add(ringParameter.ViewingAngle_Random.Max.GetBytes());
                    data.Add(ringParameter.ViewingAngle_Random.Min.GetBytes());
                }
                else if (ringParameter.ViewingAngle.GetValue() == Data.RendererValues.RingParamater.ViewingAngleType.Easing)
                {
                    AddFloatEasing(data, ringParameter.ViewingAngle_Easing);
                }
            }

            void AddLocation(Enum <Data.RendererValues.RingParamater.LocationType> locationType,
                             Data.RendererValues.RingParamater.FixedLocation @fixed,
                             Data.RendererValues.RingParamater.PVALocation pva,
                             Vector2DEasingParamater easingParam)
            {
                data.Add(locationType);
                if (locationType.GetValue() == Data.RendererValues.RingParamater.LocationType.Fixed)
                {
                    data.Add((@fixed.Location.X.Value).GetBytes());
                    data.Add((@fixed.Location.Y.Value).GetBytes());
                }
                else if (locationType.GetValue() == Data.RendererValues.RingParamater.LocationType.PVA)
                {
                    data.Add(pva.Location.GetBytes());
                    data.Add(pva.Velocity.GetBytes());
                    data.Add(pva.Acceleration.GetBytes());
                }
                else if (locationType.GetValue() == Data.RendererValues.RingParamater.LocationType.Easing)
                {
                    data.Add((byte[])easingParam.Start.GetBytes());
                    data.Add((byte[])easingParam.End.GetBytes());

                    AddEasing(data, easingParam.StartSpeed, easingParam.EndSpeed);
                }
            }

            void AddCenterRatio()
            {
                data.Add(ringParameter.CenterRatio);
                if (ringParameter.CenterRatio.GetValue() == Data.RendererValues.RingParamater.CenterRatioType.Fixed)
                {
                    data.Add(ringParameter.CenterRatio_Fixed.Value.GetBytes());
                }
                else if (ringParameter.CenterRatio.GetValue() == Data.RendererValues.RingParamater.CenterRatioType.Random)
                {
                    data.Add(ringParameter.CenterRatio_Random.Max.GetBytes());
                    data.Add(ringParameter.CenterRatio_Random.Min.GetBytes());
                }
                else if (ringParameter.CenterRatio.GetValue() == Data.RendererValues.RingParamater.CenterRatioType.Easing)
                {
                    AddFloatEasing(data, ringParameter.CenterRatio_Easing);
                }
            }

            void AddColor(Enum <Data.RendererValues.RingParamater.ColorType> parameter,
                          Color @fixed,
                          ColorWithRandom random,
                          ColorEasingParamater easingParam)
            {
                data.Add(parameter);
                if (parameter.Value == Data.RendererValues.RingParamater.ColorType.Fixed)
                {
                    data.Add((byte[])@fixed);
                }
                else if (parameter.Value == Data.RendererValues.RingParamater.ColorType.Random)
                {
                    data.Add((byte[])random);
                }
                else if (parameter.Value == Data.RendererValues.RingParamater.ColorType.Easing)
                {
                    AddColorEasing(data, easingParam);
                }
            }
        }
Exemplo n.º 3
0
        private static void AddSpriteData(Data.RendererValues value, List <byte[]> data)
        {
            var param = value.Sprite;

            data.Add(param.RenderingOrder);
            data.Add(param.Billboard);

            AddColorAll();
            AddPartialColor();
            AddPosition();

            void AddColorAll()
            {
                data.Add(param.ColorAll);                       // 全体色
                if (param.ColorAll.Value == Data.StandardColorType.Fixed)
                {
                    var color_all = (byte[])param.ColorAll_Fixed;
                    data.Add(color_all);
                }
                else if (param.ColorAll.Value == Data.StandardColorType.Random)
                {
                    var color_random = (byte[])param.ColorAll_Random;
                    data.Add(color_random);
                }
                else if (param.ColorAll.Value == Data.StandardColorType.Easing)
                {
                    AddColorEasing(data, value.Sprite.ColorAll_Easing);
                }
                else if (param.ColorAll.Value == Data.StandardColorType.FCurve)
                {
                    var bytes = param.ColorAll_FCurve.FCurve.GetBytes();
                    data.Add(bytes);
                }
            }

            void AddPartialColor()
            {
                data.Add(param.Color);

                if (param.Color.Value == Data.RendererValues.SpriteParamater.ColorType.Default)
                {
                }
                else if (param.Color.Value == Data.RendererValues.SpriteParamater.ColorType.Fixed)
                {
                    var color_ll = (byte[])param.Color_Fixed_LL;
                    var color_lr = (byte[])param.Color_Fixed_LR;
                    var color_ul = (byte[])param.Color_Fixed_UL;
                    var color_ur = (byte[])param.Color_Fixed_UR;

                    data.Add(color_ll);
                    data.Add(color_lr);
                    data.Add(color_ul);
                    data.Add(color_ur);
                }
            }

            void AddPosition()
            {
                data.Add(BitConverter.GetBytes((int)Data.RendererValues.SpriteParamater.PositionType.Fixed));

                if (param.Position.Value == Data.RendererValues.SpriteParamater.PositionType.Default)
                {
                    data.Add(BitConverter.GetBytes(-0.5f));
                    data.Add(BitConverter.GetBytes(-0.5f));
                    data.Add(BitConverter.GetBytes(+0.5f));
                    data.Add(BitConverter.GetBytes(-0.5f));
                    data.Add(BitConverter.GetBytes(-0.5f));
                    data.Add(BitConverter.GetBytes(+0.5f));
                    data.Add(BitConverter.GetBytes(+0.5f));
                    data.Add(BitConverter.GetBytes(+0.5f));
                }
                else if (param.Position.Value == Data.RendererValues.SpriteParamater.PositionType.Fixed)
                {
                    var pos_ll = (byte[])param.Position_Fixed_LL.GetBytes();
                    var pos_lr = (byte[])param.Position_Fixed_LR.GetBytes();
                    var pos_ul = (byte[])param.Position_Fixed_UL.GetBytes();
                    var pos_ur = (byte[])param.Position_Fixed_UR.GetBytes();

                    data.Add(pos_ll);
                    data.Add(pos_lr);
                    data.Add(pos_ul);
                    data.Add(pos_ur);
                }
            }
        }