Exemplo n.º 1
0
        public static ParseFieldValueAction GetParserMethodForType(Type type)
        {
            if (type.IsEnum || (type.IsArray && type.GetElementType().IsEnum))
            {
                return(new LDtkParsedEnum().ParseValue);
            }

            ILDtkParsedValue parsedType = null;

            foreach (ILDtkParsedValue p in ParsedTypes)
            {
                if (type == p.Type || type == p.TypeArray)
                {
                    parsedType = p;
                    break;
                }
            }

            if (parsedType != null)
            {
                return(parsedType.ParseValue);
            }

            Debug.LogError($"LDtk: Was unable to parse the type of LDtk field type \"{type.Name}\". Is the correct type specified in the field?");
            return(null);
        }
Exemplo n.º 2
0
        public static Type ParseFieldType(string typeName)
        {
            bool isArray = typeName.Contains("Array");

            ILDtkParsedValue parsedType = ParsedTypes.FirstOrDefault(p => typeName.Contains(p.TypeString));

            if (parsedType != null)
            {
                return(isArray ? parsedType.TypeArray : parsedType.Type);
            }

            Debug.LogError($"LDtk: Was unable to parse the type of LDtk instance layer type \"{typeName}\"");
            return(null);
        }