Files

75 lines
2.0 KiB
C#
Raw Permalink Normal View History

using System.Collections.Generic;
using Data;
using Managers;
using UnityEngine;
namespace UI
{
public class StartPlayUI : FullScreenUI
{
public Transform iconList;
public MapViewUI mapViewUIPrefab;
public List<MapViewUI> mapViewUIList = new();
private int _currentIndex;
public int CurrentDimensionIndex
{
get => _currentIndex;
set
{
_currentIndex = value;
if (_currentIndex < 0)
_currentIndex += mapViewUIList.Count;
else if (_currentIndex >= mapViewUIList.Count) _currentIndex %= mapViewUIList.Count;
}
}
public DimensionDef CurrentDimension => mapViewUIList[CurrentDimensionIndex].DimensionDefine;
private void Start()
{
var dimensionDefs = DefineManager.Instance.QueryDefinesByType<DimensionDef>();
if (dimensionDefs == null)
return;
foreach (var d in dimensionDefs)
{
if (!d.canSelect)
continue;
var newObj = Instantiate(mapViewUIPrefab, iconList);
mapViewUIList.Add(newObj);
newObj.Init(d);
newObj.gameObject.SetActive(false);
newObj.transform.localPosition = Vector3.zero;
}
UpdateUI();
}
public void UpdateUI()
{
if (mapViewUIList == null)
return;
for (var i = 0; i < mapViewUIList.Count; i++)
mapViewUIList[i].gameObject.SetActive(i == CurrentDimensionIndex);
}
public void OnStartGame()
{
Program.Instance.StartPlayGame(CurrentDimension);
}
public void OnLeft()
{
CurrentDimensionIndex -= 1;
UpdateUI();
}
public void OnRight()
{
CurrentDimensionIndex += 1;
UpdateUI();
}
}
}