using TMPro; using UnityEngine; using UnityEngine.UI; namespace BulletHellTemplate { /// /// Represents a UI entry for a character skin. /// public class SkinEntry : MonoBehaviour { [Tooltip("Image displaying the skin icon.")] public Image skinIcon; [Tooltip("Image indicating if the skin is locked.")] public Image lockedSkin; [Tooltip("Image indicating if the skin is selected.")] public Image selectedSkin; [Tooltip("Text displaying the skin name.")] public TextMeshProUGUI skinName; private int skinIndex; /// /// Configures the SkinEntry with the given skin data. /// /// The character skin data. /// The index of the skin. /// Indicates if the skin is unlocked. public void SetupSkinEntry(CharacterSkin skin, int index, bool isUnlocked) { skinIndex = index; if (skinIcon != null) skinIcon.sprite = skin.skinIcon; string currentLang = LanguageManager.LanguageManager.Instance.GetCurrentLanguage(); skinName.text = UICharacterMenu.Singleton.GetTranslatedString(skin.skinNameTranslated, skin.skinName, currentLang); if (lockedSkin != null) lockedSkin.gameObject.SetActive(!isUnlocked); } /// /// Handles the selection of this skin. /// public void OnClickSelectSkin() { if (UICharacterMenu.Singleton != null) { UICharacterMenu.Singleton.ChangeCharacterSkin(skinIndex); if (UICharacterMenu.Singleton.UISkins != null) UICharacterMenu.Singleton.UISkins.SetActive(false); } } } }