using UnityEngine;
using System.Collections;
using System;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;

public class EstadoJuego : MonoBehaviour {

	public Manager.ClasePrincipal mainClass;


	public static EstadoJuego estadoJuego;
	string rutaArchivo;
	
	void Awake() {
		rutaArchivo = Application.persistentDataPath + "/partida.dat";
		
		if(estadoJuego==null){
			estadoJuego = this;
			DontDestroyOnLoad(gameObject);
		}else if(estadoJuego != this){
			Destroy (gameObject);
		}
		Cargar ();
	}
	
	//Guarda la partida
	public void Guardar(){
		BinaryFormatter bf = new BinaryFormatter();
		FileStream file = File.Create(rutaArchivo);
		DatosAGuardar datos = new DatosAGuardar ();
		
		//informacion a guardar
		datos.mainClass = mainClass;
		
		bf.Serialize(file, datos);
		file.Close();
	}
	
	//Carga la partida
	public void Cargar(){
		if(File.Exists(rutaArchivo)){
			BinaryFormatter bf = new BinaryFormatter();
			FileStream file = File.Open (rutaArchivo, FileMode.Open);
			DatosAGuardar datos = (DatosAGuardar)bf.Deserialize(file);
			
			//informacion a cargar
			mainClass = datos.mainClass;

			file.Close ();
		}else{
			//Borrar ();
		}
	}
	
	public void Borrar (){
		mainClass = new Manager.ClasePrincipal ();
		Guardar ();
	}
}
[Serializable]
class DatosAGuardar{

	public Manager.ClasePrincipal mainClass;

}
