using RR.Common.Managers;
using RR.Game2D.Core.Managers;
using UnityEngine;
using UnityEngine.UI;
namespace RR.Common.UI
{
///
/// УСТАРЕВШИЙ контроллер QR-кодов.
/// Логика отображения QR-кодов полностью перенесена в WinBannerController:
/// QR-коды генерируются в PrizeSystemManager и показываются ТОЛЬКО при победе (GameWonEvent).
/// Удалите этот компонент со сцены и используйте WinBannerController.
///
[System.Obsolete("Используйте WinBannerController — QR-коды показываются только при победе через PrizeSystemManager.")]
public class QRCodeUIController : MonoBehaviour
{
[SerializeField] private Transform content;
private PrizeSystemManager _prizeSystemManager;
private GameObject[] _qrCodes;
private void Start()
{
Debug.LogWarning("[QRCodeUIController] Этот компонент устарел. " +
"Удалите его со сцены — QR-коды управляются через WinBannerController.");
_prizeSystemManager = PrizeSystemManager.Instance;
GameManager.Instance.GameWonEvent += AddQRCodes;
}
private void OnDestroy()
{
if (GameManager.Instance != null)
GameManager.Instance.GameWonEvent -= AddQRCodes;
}
private void AddQRCodes(float _)
{
if (_qrCodes != null) ClearQRCodes();
Texture2D[] qrCodesImages = _prizeSystemManager.GetQRCodes(RR.Common.Prizes.QRTier.None);
_qrCodes = new GameObject[qrCodesImages.Length];
for (int i = 0; i < qrCodesImages.Length; i++)
{
_qrCodes[i] = new GameObject("QRCode_" + i, typeof(RectTransform), typeof(Image));
_qrCodes[i].transform.SetParent(content, false);
Sprite sprite = Sprite.Create(qrCodesImages[i],
new Rect(0, 0, qrCodesImages[i].width,
qrCodesImages[i].height),
new Vector2(0.5f, 0.5f));
_qrCodes[i].GetComponent().sprite = sprite;
}
}
private void ClearQRCodes()
{
if (_qrCodes == null) return;
foreach (GameObject qrCode in _qrCodes)
{
Destroy(qrCode);
}
_qrCodes = null;
}
}
}