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); } } }
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); } } }
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); } } }