54 lines
2.0 KiB
C#
54 lines
2.0 KiB
C#
|
|
using System.Collections.Generic;
|
|||
|
|
|
|||
|
|
namespace Febucci.UI.Core
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// Helper class. Contains methods to parse attributes/values from strings.
|
|||
|
|
/// </summary>
|
|||
|
|
public static class FormatUtils
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// Tries to parse a rich text tag parameter.
|
|||
|
|
/// </summary>
|
|||
|
|
/// <remarks>
|
|||
|
|
/// Mostly used in combination with custom typewriter actions. (Manual: <see href="https://www.febucci.com/text-animator-unity/docs/writing-custom-actions-c-sharp/">Writing Custom actions C#</see>)
|
|||
|
|
/// </remarks>
|
|||
|
|
/// <param name="attributes">list of all the attributesi in the rich text tag</param>
|
|||
|
|
/// <param name="index">the parameter's index in the list</param>
|
|||
|
|
/// <param name="defValue">default value, assigned if the parsing is not successful</param>
|
|||
|
|
/// <param name="result">result from the parsing</param>
|
|||
|
|
/// <returns><c>true</c> if successful</returns>
|
|||
|
|
public static bool TryGetFloat(List<string> attributes, int index, float defValue, out float result)
|
|||
|
|
{
|
|||
|
|
if (index >= attributes.Count || index < 0)
|
|||
|
|
{
|
|||
|
|
result = defValue;
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return TryGetFloat(attributes[index], defValue, out result);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//TODO Docs
|
|||
|
|
public static bool TryGetFloat(string attribute, float defValue, out float result)
|
|||
|
|
{
|
|||
|
|
if (ParseFloat(attribute, out result))
|
|||
|
|
return true;
|
|||
|
|
|
|||
|
|
result = defValue;
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// Tries parsing a float given a string, independently of the system's culture
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="value"></param>
|
|||
|
|
/// <param name="result"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public static bool ParseFloat(string value, out float result)
|
|||
|
|
{
|
|||
|
|
return float.TryParse(value, System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out result);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|