1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- using KairoEngine.UI.Encyclopedia;
- using Sirenix.OdinInspector;
- using TMPro;
- namespace KairoEngine.UI.Encyclopedia
- {
- public class EncyclopediaCategoryUi : MonoBehaviour, IEncyclopediaCategoryDataView
- {
- public enum UiType
- {
- Title,
- Id,
- Icon,
- Image,
- Layout,
- Articles
- }
-
- public UiType uiType = UiType.Title;
- [ShowIf("@!IsImage()")] public TextMeshProUGUI textMeshPro;
- [ShowIf("@IsImage()")] public Image imageComponent;
- public bool IsImage() => uiType == UiType.Image || uiType == UiType.Icon;
- public void Setup(EncyclopediaCategory category)
- {
- string result = "";
- Sprite spriteImage = null;
- switch(uiType)
- {
- case UiType.Title:
- result = category.title;
- break;
- case UiType.Id:
- result = category.id;
- break;
- case UiType.Icon:
- spriteImage = category.icon;
- break;
- case UiType.Image:
- spriteImage = category.image;
- break;
- case UiType.Layout:
- result = category.layoutName;
- break;
- case UiType.Articles:
- result = $"{category.GetArticles().Count} {(category.GetArticles().Count == 1 ? category.titleSingle : category.titlePlural)}";
- break;
- default:
- break;
- }
- if (!IsImage() && textMeshPro != null)
- {
- textMeshPro.text = result;
- if(imageComponent != null) imageComponent.gameObject.SetActive(false);
- }
- else if(IsImage() && imageComponent != null)
- {
- if(spriteImage != null)
- {
- imageComponent.sprite = spriteImage;
- imageComponent.gameObject.SetActive(true);
- }
- else imageComponent.gameObject.SetActive(false);
-
- }
- }
- }
- }
|