mirror of
http://47.107.252.169:3000/Roguelite-Game-Developing-Team/Gen_Hack-and-Slash-Roguelite.git
synced 2025-11-20 05:27:13 +08:00
Co-authored-by: m0_75251201 <m0_75251201@noreply.gitcode.com> Reviewed-on: http://47.107.252.169:3000/Roguelite-Game-Developing-Team/Gen_Hack-and-Slash-Roguelite/pulls/60
75 lines
2.0 KiB
C#
75 lines
2.0 KiB
C#
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();
|
|
}
|
|
}
|
|
} |