79 lines
3.2 KiB
C#
79 lines
3.2 KiB
C#
#if USE_ARTICY
|
|
// Copyright (c) Pixel Crushers. All rights reserved.
|
|
|
|
using System.Text;
|
|
|
|
namespace PixelCrushers.DialogueSystem.Articy
|
|
{
|
|
|
|
/// <summary>
|
|
/// 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.
|
|
/// </summary>
|
|
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
|