Files
aibis-dream/Assets/Scripts/Utility/YarnUtil.cs
T

41 lines
1.3 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Yarn;
using Yarn.Markup;
using Yarn.Unity;
namespace AibisDream
{
public static class YarnUtil
{
private const string CommandAttr = "command";
private const string OptionAttr = "options";
private const string CommandProp = "name";
public static bool HasCommandAttr(this MarkupParseResult text)
{
return text.TryGetAttributeWithName(CommandAttr, out var attribute1) ||
text.TryGetAttributeWithName(OptionAttr, out var attribute2);
}
public static bool TryGetCommandAttr(this MarkupParseResult text, out string commandName)
{
bool res = text.TryGetAttributeWithName(CommandAttr, out var attribute);
commandName = res ? attribute.Properties[CommandProp].StringValue : null;
return res;
}
public static bool IsOptionAttrLine(this MarkupParseResult text)
{
return text.TryGetAttributeWithName(OptionAttr, out var outStr);
}
public static void AddCommandListener(this DialogueRunner runner, CommandHandler onCommand)
{
runner.Dialogue.CommandHandler += onCommand;
}
}
}