/* // Activate when debugging
     * void OnGUI()
     * {
     *  if(GUI.Button(new Rect(100,100, 300,100), "GUARDAR DATOS")) {
     *      SaveDataToDisk();
     *  }
     *
     *
     *  if(GUI.Button(new Rect(100,200, 300,100), "CARGAR DATOS")) {
     *      _LoadDataFromDisk();
     *  }
     * }
     */



    public static void SaveDataToDisk( )
    {
        BinaryFormatter bf   = new BinaryFormatter();
        FileStream      file = File.Create(Application.persistentDataPath + "/" + FileName);

        GameObject            gc               = GameObject.FindGameObjectWithTag(SuriAlFuturo.Tag.GameController);
        DialogueController    dialogCtrl       = gc.GetComponent <DialogueController>();
        PersistenceController persistenceCtrl  = gc.GetComponent <PersistenceController>();
        CollectionSystem      collectionSystem = gc.GetComponent <CollectionSystem>();
        TapController         tapCtrl          = gc.GetComponent <TapController>();
        TimeTravelController  timeTravelCtrl   = gc.GetComponent <TimeTravelController>();
        EventController       eventCtrl        = gc.GetComponent <EventController>();

        SavedGame savedGame = new SavedGame();

        savedGame.Talkables       = dialogCtrl.SavedTalkableStates;
        savedGame.GameObjects     = persistenceCtrl.SavedGameObjects;
        savedGame.Collectables    = collectionSystem.SavedCollectables;
        savedGame.Blockers        = collectionSystem.SavedBlockers;
        savedGame.Inventory       = collectionSystem.Inventory;
        savedGame.Taps            = tapCtrl.SavedTaps;
        savedGame.CurrentReality  = timeTravelCtrl.CurrentReality;
        savedGame.TouchTriggers   = eventCtrl.SavedTouchTriggers;
        savedGame.TriggeredEvents = eventCtrl.TriggeredEvents;

        bf.Serialize(file, savedGame);
        file.Close();
    }
    void Start()
    {
        _particles            = GetComponent <ParticleSystem>();
        _autoRotate           = GetComponent <UnityStandardAssets.Utility.AutoMoveAndRotate>();
        _timeTravelController = GameObject.FindGameObjectWithTag(SuriAlFuturo.Tag.GameController).GetComponent <TimeTravelController>();
        _timeTravelDoorSound  = GetComponent <AudioSource>();

        StartCoroutine(TimeTravelCycle());
    }
Exemple #3
0
    void Start()
    {
        _isOn          = true;
        _isUsable      = GetComponent <Collider>().enabled;
        PersistenceKey = this.transform.position;

        _fountain       = GetComponentInChildren <ParticleSystem>();
        _gameController = GameObject.FindGameObjectWithTag(Tag.GameController)
                          .GetComponent <GameController>();
        _timeTravelController = _gameController.GetComponent <TimeTravelController>();
        _tapController        = _gameController.GetComponent <TapController>();

        _tapController.Taps.Add(this);
        _tapController.Load(this);
    }
    private static void _LoadDataFromDisk()
    {
        string nombreArch = Application.persistentDataPath + "/" + FileName;

        GameObject            gc               = GameObject.FindGameObjectWithTag(SuriAlFuturo.Tag.GameController);
        DialogueController    dialogCtrl       = gc.GetComponent <DialogueController>();
        PersistenceController persistenceCtrl  = gc.GetComponent <PersistenceController>();
        CollectionSystem      collectionSystem = gc.GetComponent <CollectionSystem>();
        TapController         tapCtrl          = gc.GetComponent <TapController>();
        TimeTravelController  timeTravelCtrl   = gc.GetComponent <TimeTravelController>();
        EventController       eventCtrl        = gc.GetComponent <EventController>();

        if (File.Exists(nombreArch))
        {
            BinaryFormatter bf   = new BinaryFormatter();
            FileStream      file = File.Open(nombreArch, FileMode.Open);

            SavedGame savedGame = (SavedGame)bf.Deserialize(file);

            file.Close();

            dialogCtrl.SavedTalkableStates     = savedGame.Talkables;
            persistenceCtrl.SavedGameObjects   = savedGame.GameObjects;
            collectionSystem.SavedCollectables = savedGame.Collectables;
            collectionSystem.SavedBlockers     = savedGame.Blockers;
            collectionSystem.Inventory         = savedGame.Inventory;
            tapCtrl.SavedTaps             = savedGame.Taps;
            timeTravelCtrl.CurrentReality = savedGame.CurrentReality;
            eventCtrl.SavedTouchTriggers  = savedGame.TouchTriggers;
            eventCtrl.TriggeredEvents     = savedGame.TriggeredEvents;
        }
        else
        {
            SaveDataToDisk();
        }
    }