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); }