Snaparazzi/Assets/Scripts/PropositionFrame.cs

63 lines
1.9 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using Firebase.Extensions;
using Firebase.Storage;
using TMPro;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;
public class PropositionFrame : MonoBehaviour
{
public RawImage picture;
public GameObject voterStickerPrefab;
public TextMeshProUGUI playerName;
public Transform playerGrid;
private List<Player> currentVoters = new List<Player>();
private Proposition proposition;
public void Initialize(Proposition _proposition)
{
Debug.Log($"Initializing {_proposition.owner.name}'s proposition", this);
proposition = _proposition;
playerName.text = proposition.owner.name;
if (!string.IsNullOrEmpty(proposition.photoUrl))
DisplayPicture(proposition.photoUrl);
}
/// <summary>
/// Url is Google bucket URL. We
/// </summary>
/// <param name="_gsUrl"></param>
private void DisplayPicture(string _gsUrl)
{
Debug.Log($"Google Storage URL : {_gsUrl}");
StorageManager.ConvertGoogleStorageURLToHttpsUrl(_gsUrl, _url =>
{
StartCoroutine(StorageManager.DownloadImage_Coroutine(_url, _texture =>
{
Debug.Log("Set texture in the raw image");
picture.texture = _texture;
}));
});
}
public void UpdateVoters(List<Player> _newVoters)
{
Debug.Log($"There are some new voters for {proposition.owner}'s proposition", this);
foreach (Player p in _newVoters)
{
if (!currentVoters.Contains(p))
{
currentVoters.Add(p);
VoterSticker sticker = Instantiate(voterStickerPrefab, playerGrid).GetComponent<VoterSticker>();
sticker.playerNameLabel.text = p.name;
Debug.Log($"{p.name} has just voted for {proposition.owner.name}'s proposition.");
}
}
}
}