using UnityEngine;

// Change only the viewpoint; both sides keep the same terrain and materials.
public class TerrainComparisonView : MonoBehaviour
{
    [SerializeField] Camera[] comparisonCameras;
    [SerializeField] Vector3 overviewPosition = new Vector3(0, 10, -12);
    [SerializeField] Vector3 overviewRotation = new Vector3(35, 0, 0);
    [SerializeField] Vector3 cliffPosition = new Vector3(-0.5f, 1.4f, -0.3f);
    [SerializeField] Vector3 cliffRotation = new Vector3(-20, 0, 0);
    [SerializeField] UnityEngine.UI.Button overviewButton;
    [SerializeField] UnityEngine.UI.Button cliffButton;

    void Start() => ShowOverview();

    public void ShowOverview()
    {
        SetView(overviewPosition, overviewRotation, 0.3f);
        overviewButton.interactable = false;
        cliffButton.interactable = true;
    }

    public void ShowCliff()
    {
        SetView(cliffPosition, cliffRotation, 0.01f);
        overviewButton.interactable = true;
        cliffButton.interactable = false;
    }

    void SetView(Vector3 position, Vector3 rotation, float nearClip)
    {
        foreach (var camera in comparisonCameras)
        {
            camera.transform.localPosition = position;
            camera.transform.localRotation = Quaternion.Euler(rotation);
            camera.nearClipPlane = nearClip;
        }
    }
}
