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(); }; } } } }