Net.Like.Xue.Tokyo/Packages-Local/Com.Project.B.Unity/Emoji/UnityEmojiService.cs

31 lines
897 B
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using BITKit;
using BITKit.Mod;
using Cysharp.Threading.Tasks;
using UnityEngine;
namespace Net.Project.B.Emoji
{
public class UnityEmojiService : IEmojiService<AnimationClip>
{
public event Func<IEmojiData<AnimationClip>, CancellationToken, UniTask> OnPlayAsync;
public async UniTask<IReadOnlyCollection<IEmojiData<AnimationClip>>> GetAllEmojis()
{
var value = await ModService.LoadAssets<ScriptableEmojiCollection>("scriptable_emojis");
return value.SelectMany(x => x.GetEmojis).ToArray();
}
public async UniTask Play(IEmojiData<AnimationClip> emojiData, CancellationToken cancellationToken = default)
{
await OnPlayAsync.UniTaskFunc(emojiData, cancellationToken);
}
}
}