public void ReviewSpecialProperties(ArticyData articyData) { foreach (var articyEntity in articyData.entities.Values) { var conversionSetting = ConversionSettings.GetConversionSetting(articyEntity.id); if (conversionSetting.Include) { if (ArticyConverter.HasField(articyEntity.features, "IsNPC", false)) { conversionSetting.Category = EntityCategory.NPC; } if (ArticyConverter.HasField(articyEntity.features, "IsPlayer", true)) { conversionSetting.Category = EntityCategory.Player; } if (ArticyConverter.HasField(articyEntity.features, "IsItem", true)) { conversionSetting.Category = EntityCategory.Item; } if (ArticyConverter.HasField(articyEntity.features, "IsQuest", true)) { conversionSetting.Category = EntityCategory.Quest; } } } }
/// <summary> /// Converts the articy project. /// </summary> public void ConvertArticyProject() { if (articyData == null || mustReloadData) { ReviewArticyProject(); } if (articyData != null) { try { ArticyConverter.onProgressCallback += OnProgressCallback; string assetName = articyData.ProjectTitle.Replace(':', '_'); DialogueDatabase database = LoadOrCreateDatabase(assetName); if (database == null) { Debug.LogError(string.Format("{0}: Couldn't create asset '{1}'.", DialogueDebug.Prefix, assetName)); } else { ArticyConverter.ConvertArticyDataToDatabase(articyData, prefs, template, database); ArticyEditorTools.FindPortraitTexturesInAssetDatabase(database, prefs.PortraitFolder); EditorUtility.SetDirty(database); AssetDatabase.SaveAssets(); Debug.Log(string.Format("{0}: Created database '{1}' containing {2} actors, {3} conversations, {4} items/quests, {5} variables, and {6} locations.", DialogueDebug.Prefix, assetName, database.actors.Count, database.conversations.Count, database.items.Count, database.variables.Count, database.locations.Count), database); } } finally { ArticyConverter.onProgressCallback -= OnProgressCallback; EditorUtility.ClearProgressBar(); } } }
/// <summary> /// Converts the articy project. /// </summary> public void ConvertArticyProject() { if (articyData == null) { ReviewArticyProject(); } if (articyData != null) { try { string assetName = projectTitle.Replace(':', '_'); DialogueDatabase database = LoadOrCreateDatabase(assetName); if (database == null) { Debug.LogError(string.Format("{0}: Couldn't create asset '{1}'.", DialogueDebug.Prefix, assetName)); } else { ArticyConverter.ConvertArticyDataToDatabase(articyData, prefs, database); EditorUtility.SetDirty(database); AssetDatabase.SaveAssets(); Debug.Log(string.Format("{0}: Created database '{1}' containing {2} actors, {3} conversations, {4} items/quests, {5} variables, and {6} locations.", DialogueDebug.Prefix, assetName, database.actors.Count, database.conversations.Count, database.items.Count, database.variables.Count, database.locations.Count)); } } finally { EditorUtility.ClearProgressBar(); } } }
/// <summary> /// This static utility method creates a converter and uses it run the conversion. /// </summary> /// <param name='articyData'> /// Articy data. /// </param> /// <param name='prefs'> /// Prefs. /// </param> /// <param name='database'> /// Dialogue database. /// </param> public static void ConvertArticyDataToDatabase(ArticyData articyData, ConverterPrefs prefs, DialogueDatabase database) { ArticyConverter converter = new ArticyConverter(); converter.Convert(articyData, prefs, database); }