PlayerManager.cs 2.58 KB
//UnityEngine.Debug.Log Dir		 http://docs.unity3d.com/Manual/UnityEngine.Debug.LogFiles.html
using UnityEngine;
using System;
using System.IO;
using System.Threading;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Net.Sockets;
using System.Diagnostics;

public class PlayerManager : GenericPlayerManager {

	private Server server = null;
	private Semaphore serverSemaphore = null;
	private volatile bool toFinalize = false;

	public override void Start()
	{
		base.Start();
		string[] args = Environment.GetCommandLineArgs();

		if (args.Length >= 2)
		{
			float speedRate = (int.Parse(args[1]) + 100F) / 100F;

			DefaultSignSpeed ds = base.subtitles.DefaultWordSpeed;
			base.subtitles.DefaultWordSpeed = new DefaultSignSpeed(
				ds.Speed * speedRate,
				ds.Max * speedRate
			);
		}
		if (args.Length >= 3)
		{
			float speedRate = (int.Parse(args[2]) + 100F) / 100F;

			DefaultSignSpeed ds = base.subtitles.DefaultLetterSpeed;
			base.subtitles.DefaultLetterSpeed = new DefaultSignSpeed(
				ds.Speed * speedRate,
				ds.Max * speedRate
			);

			ds = base.subtitles.DefaultFirstLetterSpeed;
			base.subtitles.DefaultFirstLetterSpeed = new DefaultSignSpeed(
				ds.Speed * speedRate,
				ds.Max * speedRate
			);

			ds = base.subtitles.DefaultNumberSpeed;
			base.subtitles.DefaultNumberSpeed = new DefaultSignSpeed(
				ds.Speed * speedRate,
				ds.Max * speedRate
			);
		}
		if (args.Length >= 4)
		{
			if (int.Parse(args[3]) == 1)
				base.SUBTITLES.gameObject.SetActive(true);
		}

		serverSemaphore = new Semaphore(0, 1);
		server = new Server(serverSemaphore, this);
		Thread t = new Thread(new ThreadStart(server.startServer));
		t.Start();

		serverSemaphore.WaitOne();

		Screen.SetResolution(800, 600, false);
	}

	protected void Update() {
		if (toFinalize) Application.Quit();
	}

	public void playMessage(string message) {
		base.playQueued(message.ToUpper());
	}

	public override WWW loadAssetBundle(string aniName)
	{
		string assetPath = Application.dataPath + "/Bundles/" + aniName;

		if ( ! File.Exists(assetPath))
		{
			UnityEngine.Debug.Log("PM:lAB(" + aniName + "): file at " + assetPath + "not exists");
			return null;
		}

		try {
			UnityEngine.Debug.Log("PM:lAB(" + aniName + "): loading file at " + assetPath);
			WWW www = new WWW("file://" + assetPath);
			return www;
		} catch (Exception e) {
			UnityEngine.Debug.Log(e);
		}

		return null;
	}

	public override void onPlayingStateChange() { }

	public override void onConnectionError(string gloss, string word) {
		UnityEngine.Debug.Log("PM:oCE: " + gloss + " / " + word);
	}

}