﻿using UnityEngine;
using System.Collections;
using UnityEngine.UI;

[ExecuteInEditMode]
public class PercentageText : MonoBehaviour
{
    public ProgressBar ProgressBar;
    private Text Percentage;

    void Awake()
    {
        Percentage = GetComponent<Text>();
        if (Percentage == null)
        {
            Debug.LogError("Failed to get a UnityEngine.UI.Text component in this GameObjct");
            return;
        }

        if (ProgressBar == null)
        {
            Debug.LogError("Failed to load ProgressBar in this PercentageText");
            return;
        }

        ProgressBar.OnPercentageChanged += percentage =>
        {
			// 0.00 % (0/0) : (0/0)
            Percentage.text = string.Format("{0} % ({1}/{2}) : ({3:N0}/{4:N0})", 
                                            (percentage * 100.0f).ToString("F2"), 
                                            ProgressBar.CompletedFileCount, ProgressBar.TotalFileCount,
                                            ProgressBar.CompletedFileBytes, ProgressBar.TotalFileBytes);
        };
    }
}
