Files
Cielonos/Packages/com.lunawolfstudios.scriptablesheets/Editor/Modules/Tables/Utilities/Wrapper.cs
SoulliesOfficial 7ee2894a63 整合SLSUtilities
2026-01-17 11:35:49 -05:00

67 lines
1.4 KiB
C#

using UnityEngine;
namespace LunaWolfStudiosEditor.ScriptableSheets.Tables
{
[System.Serializable]
public class Wrapper
{
[SerializeField]
private char m_Open;
public char Open { get => m_Open; set => m_Open = value; }
[SerializeField]
private char m_Close;
public char Close { get => m_Close; set => m_Close = value; }
public Wrapper(char openAndClose)
{
m_Open = openAndClose;
m_Close = openAndClose;
}
public Wrapper(char open, char close)
{
m_Open = open;
m_Close = close;
}
public string Wrap(string value)
{
return $"{m_Open}{value}{m_Close}";
}
public string WrapInverse(string value)
{
return $"{m_Close}{value}{m_Open}";
}
public string EscapeContent(string content, string escapedOpen, string escapedClose)
{
if (string.IsNullOrEmpty(content))
{
return content;
}
var escapedContent = content.Replace(m_Open.ToString(), escapedOpen);
if (m_Open != m_Close)
{
escapedContent = escapedContent.Replace(m_Close.ToString(), escapedClose);
}
return escapedContent;
}
public string UnescapeContent(string content, string escapedOpen, string escapedClose)
{
if (string.IsNullOrEmpty(content))
{
return content;
}
var unescapedContent = content.Replace(escapedOpen, m_Open.ToString());
if (escapedOpen != escapedClose)
{
unescapedContent = unescapedContent.Replace(escapedClose, m_Close.ToString());
}
return unescapedContent;
}
}
}