BITFALL/Assets/Artists/Scripts/UX/UXMapSelector.cs

60 lines
1.2 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using BITKit;
using BITKit.Game;
using BITKit.IO;
using BITKit.SceneManagement;
using BITKit.UX;
using UnityEngine;
using UnityEngine.UIElements;
namespace BITFALL.UX
{
public class UXMapSelector : MonoBehaviour
{
[SerializeReference, SubclassSelector] private IGameService gameService;
[SerializeReference,SubclassSelector] private ISceneService sceneService;
[SerializeField] private VisualTreeAsset mapItemTemplate;
[UXBindPath("maps-container")]
private VisualElement mapsContainer;
private void Start()
{
mapsContainer.Clear();
Rebuild();
YooAssetUtils.OnPackageRegistered += OnPackageRegistered;
destroyCancellationToken.Register(() =>
{
YooAssetUtils.OnPackageRegistered -= OnPackageRegistered;
});
}
private void OnPackageRegistered(string obj)
{
Rebuild();
}
private void Rebuild()
{
foreach (var path in sceneService.GetScenes())
{
var instance =new UXContainer( mapsContainer.Create(mapItemTemplate));
instance.titleLabel.text = path;
instance.button.clickable.clicked += () =>
{
gameService.ExpectMap = path;
gameService.Play();
};
}
}
}
}