60 lines
1.2 KiB
C#
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();
|
|
};
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|