Exemplo n.º 1
0
        public bool Evaluate(CompareOperator inComparison, RSValue inCheck, RSValue inValue)
        {
            switch (inCheck.GetInnerType())
            {
            case RSValue.InnerType.Null:
                return(ComparisonExtensions.Evaluate(inComparison, false, inCheck.GetInnerType() != RSValue.InnerType.Null));

            case RSValue.InnerType.Int32:
                return(ComparisonExtensions.Evaluate(inComparison, inCheck.AsInt, inValue.AsInt));

            case RSValue.InnerType.Bool:
                return(ComparisonExtensions.Evaluate(inComparison, inCheck.AsBool, inValue.AsBool));

            case RSValue.InnerType.Color:
                return(ComparisonExtensions.EvaluateEquatable(inComparison, inCheck.AsColor, inValue.AsColor));

            case RSValue.InnerType.Float:
                return(ComparisonExtensions.Evaluate(inComparison, inCheck.AsFloat, inValue.AsFloat));

            case RSValue.InnerType.Vector2:
                return(ComparisonExtensions.EvaluateEquatable(inComparison, inCheck.AsVector2, inValue.AsVector2));

            case RSValue.InnerType.Vector3:
                return(ComparisonExtensions.EvaluateEquatable(inComparison, inCheck.AsVector3, inValue.AsVector3));

            case RSValue.InnerType.Vector4:
                return(ComparisonExtensions.EvaluateEquatable(inComparison, inCheck.AsVector4, inValue.AsVector4));

            case RSValue.InnerType.String:
                return(ComparisonExtensions.Evaluate(inComparison, inCheck.AsString, inValue.AsString));

            case RSValue.InnerType.Enum:
                return(ComparisonExtensions.Evaluate(inComparison, inCheck.AsInt, inValue.AsInt));

            case RSValue.InnerType.EntityScope:
                return(ComparisonExtensions.EvaluateReferenceEquals(inComparison, ResolveEntity(inCheck.AsEntity).ForceSingle(), ResolveEntity(inValue.AsEntity).ForceSingle()));

            default:
                throw new ArgumentException("Invalid value type " + inCheck.GetInnerType(), "inCheck");
            }
        }