#if USE_ARTICY // Copyright (c) Pixel Crushers. All rights reserved. using System.Text; namespace PixelCrushers.DialogueSystem.Articy { /// /// This static utility class loads an arbitrary articy XML as a schema-independent /// ArticyData object, regardless of what version of articy generated the XML file. /// public static class ArticySchemaTools { public static ArticyData LoadArticyDataFromXmlData(string xmlData, Encoding encoding, ConverterPrefs.ConvertDropdownsModes convertDropdownAs = ConverterPrefs.ConvertDropdownsModes.Int) { if (Articy_4_0.Articy_4_0_Tools.IsSchema(xmlData)) { return Articy_4_0.Articy_4_0_Tools.LoadArticyDataFromXmlData(xmlData, encoding, convertDropdownAs); } else if (Articy_3_1.Articy_3_1_Tools.IsSchema(xmlData)) { return Articy_3_1.Articy_3_1_Tools.LoadArticyDataFromXmlData(xmlData, encoding, convertDropdownAs); } else if (Articy_2_4.Articy_2_4_Tools.IsSchema(xmlData)) { return Articy_2_4.Articy_2_4_Tools.LoadArticyDataFromXmlData(xmlData, encoding, convertDropdownAs); } else if (Articy_2_2.Articy_2_2_Tools.IsSchema(xmlData)) { return Articy_2_2.Articy_2_2_Tools.LoadArticyDataFromXmlData(xmlData, encoding); } else if (Articy_1_4.Articy_1_4_Tools.IsSchema(xmlData)) { return Articy_1_4.Articy_1_4_Tools.LoadArticyDataFromXmlData(xmlData, encoding); } else { UnityEngine.Debug.LogWarning($"No valid schema data found in XML data. Remember to tick 'Export XML Namespace' when exporting."); return null; } } public static ArticyData LoadArticyDataFromXmlData(string xmlData, ConverterPrefs prefs) { if (Articy_4_0.Articy_4_0_Tools.IsSchema(xmlData)) { return Articy_4_0.Articy_4_0_Tools.LoadArticyDataFromXmlData(xmlData, prefs.Encoding, prefs.ConvertDropdownsAs, prefs); } else if (Articy_3_1.Articy_3_1_Tools.IsSchema(xmlData)) { return Articy_3_1.Articy_3_1_Tools.LoadArticyDataFromXmlData(xmlData, prefs.Encoding, prefs.ConvertDropdownsAs, prefs); } else if (Articy_2_4.Articy_2_4_Tools.IsSchema(xmlData)) { return Articy_2_4.Articy_2_4_Tools.LoadArticyDataFromXmlData(xmlData, prefs.Encoding, prefs.ConvertDropdownsAs, prefs); } else if (Articy_2_2.Articy_2_2_Tools.IsSchema(xmlData)) { return Articy_2_2.Articy_2_2_Tools.LoadArticyDataFromXmlData(xmlData, prefs.Encoding); } else if (Articy_1_4.Articy_1_4_Tools.IsSchema(xmlData)) { return Articy_1_4.Articy_1_4_Tools.LoadArticyDataFromXmlData(xmlData, prefs.Encoding); } else { UnityEngine.Debug.LogWarning($"No valid schema data found in XML data. Remember to tick 'Export XML Namespace' when exporting."); return null; } } } } #endif