Subtitle.cs 3.23 KB
using UnityEngine.UI;

public class Subtitle {

	public const short TYPE_NONE = -1;
	public const short TYPE_WORD = 0;
	public const short TYPE_LETTER = 1;
	public const short TYPE_NUMBER = 2;

	protected DefaultSignSpeed defaultWordSpeed = new DefaultSignSpeed();
	protected DefaultSignSpeed defaultFirstLetterSpeed = new DefaultSignSpeed();
	protected DefaultSignSpeed defaultLetterSpeed = new DefaultSignSpeed();
	protected DefaultSignSpeed defaultNumberSpeed = new DefaultSignSpeed();

	private float sliderPosition = DefaultSignSpeed.DEFAULT;

	private float wordSpeed = DefaultSignSpeed.DEFAULT;
	private float letterSpeed = DefaultSignSpeed.DEFAULT;
	private float numberSpeed = DefaultSignSpeed.DEFAULT;

	public Text SUBTITLES;


	public Subtitle(Text subtitles)
	{
		this.SUBTITLES = subtitles;
	}

	public DefaultSignSpeed DefaultWordSpeed {
		get { return this.defaultWordSpeed; }
		set {
			this.defaultWordSpeed = value;
			this.wordSpeed = value.Speed;
		}
	}

	public DefaultSignSpeed DefaultFirstLetterSpeed {
		get { return this.defaultFirstLetterSpeed; }
		set { this.defaultFirstLetterSpeed = value; }
	}

	public DefaultSignSpeed DefaultLetterSpeed {
		get { return this.defaultLetterSpeed; }
		set {
			this.defaultLetterSpeed = value;
			this.letterSpeed = value.Speed;
		}
	}

	public DefaultSignSpeed DefaultNumberSpeed {
		get { return this.defaultNumberSpeed; }
		set {
			this.defaultNumberSpeed = value;
			this.numberSpeed = value.Speed;
		}
	}

	public float WordSpeed {
		get { return this.wordSpeed; }
		set { this.wordSpeed = value; }
	}

	public float LetterSpeed {
		get { return this.letterSpeed; }
		set { this.letterSpeed = value; }
	}

	public float NumberSpeed {
		get { return this.numberSpeed; }
		set { this.numberSpeed = value; }
	}

	public float SliderPosition {
		get { return this.sliderPosition; }
		set { this.sliderPosition = value; }
	}


	public void updateWordSpeed(float sliderPosition) {
		this.WordSpeed = this.DefaultWordSpeed.getProportional(sliderPosition);
	}
	public void updateWordSpeed() {
		this.WordSpeed = this.DefaultWordSpeed.getProportional(this.SliderPosition);
	}

	public void updateLetterSpeed(float sliderPosition) {
		this.LetterSpeed = this.DefaultLetterSpeed.getProportional(sliderPosition);
	}
	public void updateLetterSpeed() {
		this.LetterSpeed = this.DefaultLetterSpeed.getProportional(this.SliderPosition);
	}

	public void updateNumberSpeed(float sliderPosition) {
		this.NumberSpeed = this.DefaultNumberSpeed.getProportional(sliderPosition);
	}
	public void updateNumberSpeed() {
		this.NumberSpeed = this.DefaultNumberSpeed.getProportional(this.SliderPosition);
	}


	/*
	 *	Destaca caractere de uma string.
	 */
	public static string highlight(string word, int index)
	{
		string subtitle = "";
		int last = 0;

		if (index == 0)
			subtitle += "<b><color=white>" + word[0] + "</color></b>";
		else
			subtitle += word[0];

		for (int i = 1; i < word.Length; i++)
		{
			if ((word[i] >= 65 && word[i] <= 90) || (word[i] >= 48 && word[i] <= 57))
				subtitle += "-";

			if (i == index || (last == index && word[i] == word[last]))
			{
				subtitle += "<b><color=white>" + word[i] + "</color></b>";
				if (i == index) last = i;
			}
			else
			{
				subtitle += word[i];
				last = i;
			}
		}

		return subtitle;
	}

}