Files
Gen_Hack-and-Slash-Roguelite/Client/Assets/Scripts/UI/StartPlayUI.cs

83 lines
2.1 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using Data;
using Managers;
using UnityEngine;
namespace UI
{
public class StartPlayUI:FullScreenUI
{
public Transform iconList;
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;
public MapViewUI mapViewUIPrefab;
public List<MapViewUI> mapViewUIList = new List<MapViewUI>();
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();
}
}
}