// Convert one condition from object builder to in-game representation.
        private static MyCondition<float> ParseOneCondition(MyAnimationController animationController,
            MyObjectBuilder_AnimationSMCondition objBuilderCondition)
        {
            MyCondition<float> condition;

            objBuilderCondition.ValueLeft = objBuilderCondition.ValueLeft != null ? objBuilderCondition.ValueLeft.ToLower() : "0";
            objBuilderCondition.ValueRight = objBuilderCondition.ValueRight != null ? objBuilderCondition.ValueRight.ToLower() : "0";
            double lhs, rhs;
            if (Double.TryParse(objBuilderCondition.ValueLeft, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out lhs))
            {
                if (Double.TryParse(objBuilderCondition.ValueRight, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out rhs))
                {
                    condition =
                        new VRage.Generics.StateMachine.MyCondition<float>(
                            animationController.Variables,
                            ConvertOperation(objBuilderCondition.Operation), (float) lhs,
                            (float) rhs);
                }
                else
                {
                    condition =
                        new VRage.Generics.StateMachine.MyCondition<float>(
                            animationController.Variables,
                            ConvertOperation(objBuilderCondition.Operation), (float) lhs,
                            objBuilderCondition.ValueRight);
                }
            }
            else
            {
                if (Double.TryParse(objBuilderCondition.ValueRight, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out rhs))
                {
                    condition =
                        new VRage.Generics.StateMachine.MyCondition<float>(
                            animationController.Variables,
                            ConvertOperation(objBuilderCondition.Operation),
                            objBuilderCondition.ValueLeft, (float) rhs);
                }
                else
                {
                    condition =
                        new VRage.Generics.StateMachine.MyCondition<float>(
                            animationController.Variables,
                            ConvertOperation(objBuilderCondition.Operation),
                            objBuilderCondition.ValueLeft, objBuilderCondition.ValueRight);
                }
            }
            return condition;
        }
        // Convert one condition from object builder to in-game representation.
        private static MyCondition<float> ParseOneCondition(MyAnimationController animationController,
            MyObjectBuilder_AnimationSMCondition objBuilderCondition)
        {
            MyCondition<float> condition;
            if (objBuilderCondition.ValueLeft == null || objBuilderCondition.ValueRight == null)
            {
                Debug.Fail("Missing operand in transition condition.");
                return null;
            }

            double lhs, rhs;
            if (Double.TryParse(objBuilderCondition.ValueLeft, out lhs))
            {
                if (Double.TryParse(objBuilderCondition.ValueRight, out rhs))
                {
                    condition =
                        new VRage.Generics.StateMachine.MyCondition<float>(
                            animationController.Variables,
                            ConvertOperation(objBuilderCondition.Operation), (float) lhs,
                            (float) rhs);
                }
                else
                {
                    condition =
                        new VRage.Generics.StateMachine.MyCondition<float>(
                            animationController.Variables,
                            ConvertOperation(objBuilderCondition.Operation), (float) lhs,
                            objBuilderCondition.ValueRight);
                }
            }
            else
            {
                if (Double.TryParse(objBuilderCondition.ValueRight, out rhs))
                {
                    condition =
                        new VRage.Generics.StateMachine.MyCondition<float>(
                            animationController.Variables,
                            ConvertOperation(objBuilderCondition.Operation),
                            objBuilderCondition.ValueLeft, (float) rhs);
                }
                else
                {
                    condition =
                        new VRage.Generics.StateMachine.MyCondition<float>(
                            animationController.Variables,
                            ConvertOperation(objBuilderCondition.Operation),
                            objBuilderCondition.ValueLeft, objBuilderCondition.ValueRight);
                }
            }
            return condition;
        }