vampire-like/Assets/GameMain/Scripts/Presentation/Menu/SelectRole/RoleItem.cs

46 lines
1.0 KiB
C#

using Cysharp.Threading.Tasks;
using SepCore.Event;
using UnityEngine;
using UnityEngine.UI;
namespace SepCore.UI
{
public class RoleItem : MonoBehaviour
{
[SerializeField] private Image _roleImage = null;
private RoleItemContext _context = null;
public async UniTaskVoid OnInit(RoleItemContext context)
{
_context = context;
if (_context == null || string.IsNullOrEmpty(_context.IconName))
{
return;
}
_roleImage.sprite = await GameEntry.SpriteCache.GetSprite(_context.IconName);
}
public void OnReset()
{
_context = null;
}
public void OnHoverEnter()
{
if (_context == null)
{
return;
}
GameEntry.Event.Fire(this, SelectRoleHoverEventArgs.Create(_context.RoleId));
}
public void OnConfirmRoleClick()
{
GameEntry.Event.Fire(this, SelectRoleConfirmEventArgs.Create());
}
}
}