41 lines
1.3 KiB
C#
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;
|
|
}
|
|
}
|
|
} |