using CustomUI.BeatSaber;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using VRUI;
|
|
|
|
namespace BSIPA_ModList.UI
|
|
{
|
|
internal class ModInfoViewController : VRUIViewController
|
|
{
|
|
internal Sprite Icon;
|
|
internal string Name;
|
|
internal string Version;
|
|
internal string Author;
|
|
internal string Description;
|
|
internal bool CanUpdate;
|
|
|
|
private ModInfoView view;
|
|
|
|
public void Init(Sprite icon, string name, string version, string author, string description, bool canUpdate)
|
|
{
|
|
Icon = icon;
|
|
Name = name;
|
|
Version = version;
|
|
Author = author;
|
|
Description = description;
|
|
CanUpdate = canUpdate;
|
|
|
|
rectTransform.anchorMin = new Vector2(0f, 0f);
|
|
rectTransform.anchorMax = new Vector2(0.4f, 1f);
|
|
|
|
var go = new GameObject("Info View");
|
|
go.SetActive(false);
|
|
view = go.AddComponent<ModInfoView>();
|
|
view.gameObject.AddComponent<RectMask2D>();
|
|
view.Init(this);
|
|
var rt = view.transform as RectTransform;
|
|
rt.SetParent(transform);
|
|
rt.anchorMin = new Vector2(0f, 0f);
|
|
rt.anchorMax = new Vector2(1f, 1f);
|
|
rt.anchoredPosition = new Vector2(0.2f, 0f);
|
|
go.SetActive(true);
|
|
}
|
|
}
|
|
|
|
internal class ModInfoView : MonoBehaviour
|
|
{
|
|
private ModInfoViewController controller;
|
|
|
|
private TextMeshProUGUI titleText;
|
|
private TextMeshProUGUI authorText;
|
|
private TextMeshProUGUI descText;
|
|
|
|
public void Init(ModInfoViewController controller)
|
|
{
|
|
this.controller = controller;
|
|
|
|
var rectTransform = transform as RectTransform;
|
|
rectTransform.sizeDelta = new Vector2(60f, 10f);
|
|
|
|
titleText = BeatSaberUI.CreateText(rectTransform, $"{controller.Name} <size=60%>{controller.Version}", new Vector2(0f, 0f));
|
|
titleText.rectTransform.anchorMin = new Vector2(0f, .8f);
|
|
titleText.rectTransform.anchorMax = new Vector2(1f, 1f);
|
|
titleText.fontSize = 6f;
|
|
authorText = BeatSaberUI.CreateText(rectTransform, controller.Author, new Vector2(0f, 0f));
|
|
titleText.rectTransform.anchorMin = new Vector2(0f, .6f);
|
|
titleText.rectTransform.anchorMax = new Vector2(1f, .8f);
|
|
authorText.fontSize = 3f;
|
|
descText = BeatSaberUI.CreateText(rectTransform, controller.Description, new Vector2(0f, 0f));
|
|
descText.rectTransform.anchorMin = new Vector2(0f, .0f);
|
|
descText.rectTransform.anchorMax = new Vector2(1f, .6f);
|
|
}
|
|
|
|
public void OnUpdate()
|
|
{
|
|
var cpos = titleText.rectTransform.anchoredPosition;
|
|
if (Input.GetKeyDown(KeyCode.LeftArrow))
|
|
titleText.rectTransform.anchoredPosition = new Vector2(cpos.x - .1f, cpos.y);
|
|
if (Input.GetKeyDown(KeyCode.RightArrow))
|
|
titleText.rectTransform.anchoredPosition = new Vector2(cpos.x + .1f, cpos.y);
|
|
if (Input.GetKeyDown(KeyCode.UpArrow))
|
|
titleText.rectTransform.anchoredPosition = new Vector2(cpos.x, cpos.y + .1f);
|
|
if (Input.GetKeyDown(KeyCode.DownArrow))
|
|
titleText.rectTransform.anchoredPosition = new Vector2(cpos.x, cpos.y - .1f);
|
|
}
|
|
}
|
|
}
|