using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using System;
using System.Diagnostics;
using Debug = UnityEngine.Debug;

public class ChangeScene : MonoBehaviour
{
    float x, y, z;
    private Animator myanim;

    
    
    public void MoveToScene(int sceneID)
    {
        SceneManager.LoadScene(sceneID);
    }


    public void MoveToSceneFirst(int sceneID)
    {
        //Scene current = SceneManager.GetActiveScene();
        //Debug.Log(PlayerPrefs.HasKey("HER"));
        if (!PlayerPrefs.HasKey("SceneSaved"))
        { 
            SceneManager.LoadScene(5);
        }
        else
        {
            SceneManager.LoadScene(sceneID);
        }

    }

    void Start(){
        
    }
    private void Awake()
    {
    }

    private void Update()
    {
    }

    private IEnumerator WaitForAnimationAndMoveToScene(float waitTime, Collision2D collision)
    {
        while (true)
        {
            yield return new WaitForSeconds(waitTime);
            Debug.Log("BEFORE");
            collision.gameObject.GetComponent<DoorBehaviour>().ScenetToMoveTo();
            Debug.Log("AFTER");
        }
    }
    
    
    // method is invoked only when script is assign to the player prefab object
    public void OnCollisionEnter2D(Collision2D collision)
    {
        if(collision.gameObject.tag == "SceneTransition")
        {
            if(collision.gameObject.GetComponent<DoorBehaviour>() != null && !collision.gameObject.GetComponent<DoorBehaviour>().isEnabled)
            {
                Debug.Log("Door are not enabled");
                return;
            }
            else if (collision.gameObject.GetComponent<AnimatedDoorBehaviour>() != null && !collision.gameObject.GetComponent<AnimatedDoorBehaviour>().isEnabled)
            {
                Debug.Log("Door are not enabled");
                return;
            }

            collision.gameObject.GetComponent<DoorBehaviour>().ScenetToMoveTo();
        }
        if(collision.gameObject.tag == "AnimatedDoorSceneTransition")
        {
            Debug.Log("Starting coroutine");
            Debug.Log(TriggerDoor.ableToOpen);
            if (TriggerDoor.ableToOpen)
            {
                StartCoroutine(WaitForAnimationAndMoveToScene(0.3f, collision));
            }
        }
    }
}