Exemple #1
0
        private static bool TryParseTypeTree(AssetsFileInstance fileInst, ref string type, bool createBlankAsset, out AssetTypeTemplateField templateField, out int typeId)
        {
            templateField = null;

            var     tt = fileInst.file.typeTree;
            Type_0D ttType;
            bool    needsTypeId;

            if (int.TryParse(type, out typeId))
            {
                ttType      = AssetHelper.FindTypeTreeTypeByID(tt, (uint)typeId);
                needsTypeId = false;
            }
            else
            {
                ttType      = AssetHelper.FindTypeTreeTypeByName(tt, type);
                needsTypeId = true;
            }

            if (ttType == null)
            {
                return(false);
            }

            if (needsTypeId)
            {
                typeId = ttType.classId;
            }

            if (createBlankAsset)
            {
                templateField = new AssetTypeTemplateField();
                if (ttType.typeFieldsExCount == 0)
                {
                    typeId = 0x01;
                    ttType = AssetHelper.FindTypeTreeTypeByID(tt, 0x01);
                }
                type = ttType.typeFieldsEx[0].GetTypeString(ttType.stringTable);
                templateField.From0D(ttType, 0);
            }
            return(true);
        }
        private bool TryParseTypeTree(AssetsFileInstance file, string typeIdText, bool createBlankAsset, out AssetTypeTemplateField tempField, out int typeId)
        {
            tempField = null;

            TypeTree tt = file.file.typeTree;
            Type_0D  ttType;
            bool     needsTypeId;

            if (int.TryParse(typeIdText, out typeId))
            {
                ttType      = AssetHelper.FindTypeTreeTypeByID(tt, (uint)typeId);
                needsTypeId = false;
            }
            else
            {
                ttType      = AssetHelper.FindTypeTreeTypeByName(tt, typeIdText);
                needsTypeId = true;
            }

            if (ttType == null)
            {
                return(false);
            }

            if (needsTypeId)
            {
                typeId = ttType.classId;
            }

            if (createBlankAsset)
            {
                tempField = new AssetTypeTemplateField();
                tempField.From0D(ttType, 0);
            }
            return(true);
        }