Beispiel #1
0
 IObjectFilter <Collider2D> IFilterSet <Collider2D> .GetFilter(StringHash32 inId)
 {
     return(GetFilter(inId));
 }
Beispiel #2
0
 public GOFilterEntry(StringHash32 inId)
 {
     Id      = inId;
     Filter  = new TFilter();
     Enabled = true;
 }
Beispiel #3
0
 IObjectFilter <GameObject> IFilterSet <GameObject> .GetFilter(StringHash32 inId)
 {
     return(GetFilter(inId));
 }
Beispiel #4
0
        /// <summary>
        /// Attempts to convert a string slice into a value of the given type.
        /// </summary>
        static public bool TryConvertTo(StringSlice inSlice, Type inType, out object outValue)
        {
            if (inType.IsEnum)
            {
                try
                {
                    outValue = Enum.Parse(inType, inSlice.ToString(), false);
                    return(true);
                }
                catch
                {
                    outValue = null;
                    return(false);
                }
            }

            TypeCode tc = Type.GetTypeCode(inType);

            switch (tc)
            {
            case TypeCode.Boolean:
            {
                bool b;
                if (TryParseBool(inSlice, out b))
                {
                    outValue = b;
                    return(true);
                }

                break;
            }

            case TypeCode.Byte:
            {
                byte b;
                if (TryParseByte(inSlice, out b))
                {
                    outValue = b;
                    return(true);
                }

                break;
            }

            case TypeCode.Char:
            {
                if (inSlice.Length > 0)
                {
                    outValue = inSlice[0];
                    return(true);
                }

                break;
            }

            case TypeCode.DateTime:
            {
                try
                {
                    outValue = Convert.ToDateTime(inSlice.ToString());
                    return(true);
                }
                catch
                {
                    outValue = null;
                    return(false);
                }
            }

            case TypeCode.Decimal:
            {
                double d;
                if (TryParseDouble(inSlice, out d))
                {
                    outValue = (decimal)d;
                    return(true);
                }

                break;
            }

            case TypeCode.Double:
            {
                double d;
                if (TryParseDouble(inSlice, out d))
                {
                    outValue = d;
                    return(true);
                }

                break;
            }

            case TypeCode.Int16:
            {
                short s;
                if (TryParseShort(inSlice, out s))
                {
                    outValue = s;
                    return(true);
                }

                break;
            }

            case TypeCode.Int32:
            {
                int i;
                if (TryParseInt(inSlice, out i))
                {
                    outValue = i;
                    return(true);
                }

                break;
            }

            case TypeCode.Int64:
            {
                long l;
                if (TryParseLong(inSlice, out l))
                {
                    outValue = l;
                    return(true);
                }

                break;
            }

            case TypeCode.Object:
            {
                if (inType == typeof(StringSlice) || inType == typeof(object))
                {
                    outValue = inSlice;
                    return(true);
                }
                if (inType == typeof(StringHash32))
                {
                    StringHash32 hash;
                    if (StringHash32.TryParse(inSlice, out hash))
                    {
                        outValue = hash;
                        return(true);
                    }
                }
                if (inType == typeof(StringHash64))
                {
                    StringHash64 hash;
                    if (StringHash64.TryParse(inSlice, out hash))
                    {
                        outValue = hash;
                        return(true);
                    }
                }
                else if (inType == typeof(Variant))
                {
                    Variant v;
                    if (Variant.TryParse(inSlice, true, out v))
                    {
                        outValue = v;
                        return(true);
                    }
                }

                break;
            }

            case TypeCode.SByte:
            {
                sbyte s;
                if (TryParseSByte(inSlice, out s))
                {
                    outValue = s;
                    return(true);
                }

                break;
            }

            case TypeCode.Single:
            {
                float f;
                if (TryParseFloat(inSlice, out f))
                {
                    outValue = f;
                    return(true);
                }

                break;
            }

            case TypeCode.String:
            {
                outValue = inSlice.ToString();
                return(true);
            }

            case TypeCode.UInt16:
            {
                ushort u;
                if (TryParseUShort(inSlice, out u))
                {
                    outValue = u;
                    return(true);
                }

                break;
            }

            case TypeCode.UInt32:
            {
                uint u;
                if (TryParseUInt(inSlice, out u))
                {
                    outValue = u;
                    return(true);
                }

                break;
            }

            case TypeCode.UInt64:
            {
                ulong u;
                if (TryParseULong(inSlice, out u))
                {
                    outValue = u;
                    return(true);
                }

                break;
            }
            }

            outValue = null;
            return(false);
        }