Net.Like.Xue.Tokyo/Assets/Artists/Scripts/UX/UXMenu.cs

53 lines
1.5 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using BITKit.UX;
using Cysharp.Threading.Tasks;
using Project.B.Entities;
using Project.B.Map;
using UnityEngine;
using UnityEngine.UIElements;
using YooAsset;
namespace Net.Like.Xue.Tokyo.UX
{
public class UXMenu : UIToolKitPanel
{
public UXMenu(IUXService uxService, IGameMapService gameMapService) : base(uxService)
{
_gameMapService = gameMapService;
}
private readonly IGameMapService _gameMapService;
protected override string DocumentPath => "ux_menu";
public override bool AllowInput => false;
public override bool AllowCursor => true;
private string _confirmMap;
[UXBindPath("level-container")]
private VisualElement _levelContainer;
public override async UniTask EntryAsync()
{
await base.EntryAsync();
UXUtils.Inject(this);
foreach (var button in _levelContainer.Children().OfType<Button>())
{
button.clicked += () =>
{
if (string.Equals(_confirmMap, button.viewDataKey))
{
_gameMapService.StartMapAsync(button.viewDataKey).Forget();
_confirmMap = null;
}
else
{
_confirmMap = button.viewDataKey;
}
};
}
}
}
}