FairyGUI.Transition.DecodeValue C# (CSharp) Method

DecodeValue() public method

public DecodeValue ( TransitionActionType type, string str, TransitionValue value ) : void
type TransitionActionType
str string
value TransitionValue
return void
        void DecodeValue(TransitionActionType type, string str, TransitionValue value)
        {
            string[] arr;
            switch (type)
            {
                case TransitionActionType.XY:
                case TransitionActionType.Size:
                case TransitionActionType.Pivot:
                case TransitionActionType.Skew:
                    arr = str.Split(',');
                    if (arr[0] == "-")
                    {
                        value.b1 = false;
                    }
                    else
                    {
                        value.f1 = float.Parse(arr[0]);
                        value.b1 = true;
                    }
                    if (arr[1] == "-")
                    {
                        value.b2 = false;
                    }
                    else
                    {
                        value.f2 = float.Parse(arr[1]);
                        value.b2 = true;
                    }
                    break;

                case TransitionActionType.Alpha:
                    value.f1 = float.Parse(str);
                    break;

                case TransitionActionType.Rotation:
                    value.f1 = int.Parse(str);
                    break;

                case TransitionActionType.Scale:
                    arr = str.Split(',');
                    value.f1 = float.Parse(arr[0]);
                    value.f2 = float.Parse(arr[1]);
                    break;

                case TransitionActionType.Color:
                    value.c = ToolSet.ConvertFromHtmlColor(str);
                    break;

                case TransitionActionType.Animation:
                    arr = str.Split(',');
                    if (arr[0] == "-")
                    {
                        value.b1 = false;
                    }
                    else
                    {
                        value.i = int.Parse(arr[0]);
                        value.b1 = true;
                    }
                    value.b = arr[1] == "p";
                    break;

                case TransitionActionType.Visible:
                    value.b = str == "true";
                    break;

                case TransitionActionType.Sound:
                    arr = str.Split(',');
                    value.s = arr[0];
                    if (arr.Length > 1)
                    {
                        int intv = int.Parse(arr[1]);
                        if (intv == 100 || intv == 0)
                            value.f1 = 1;
                        else
                            value.f1 = (float)intv / 100f;
                    }
                    else
                        value.f1 = 1;
                    break;

                case TransitionActionType.Transition:
                    arr = str.Split(',');
                    value.s = arr[0];
                    if (arr.Length > 1)
                        value.i = int.Parse(arr[1]);
                    else
                        value.i = 1;
                    break;

                case TransitionActionType.Shake:
                    arr = str.Split(',');
                    value.f1 = float.Parse(arr[0]);
                    value.f2 = float.Parse(arr[1]);
                    break;

                case TransitionActionType.ColorFilter:
                    arr = str.Split(',');
                    value.f1 = float.Parse(arr[0]);
                    value.f2 = float.Parse(arr[1]);
                    value.f3 = float.Parse(arr[2]);
                    value.f4 = float.Parse(arr[3]);
                    break;
            }
        }