﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace Arugula.Prototypical
{
    public interface ICameraSystem
    {
        void SetTarget(Transform t);
        void SetTarget(CameraTarget t);
    }


    public class CameraSwitcher : MonoBehaviour
    {
        public ObserverCamera cameraSystem;
        public float minDelay = 3;
        public float maxDelay = 7;

        public float minPan = 0;
        public float maxPan = 360;
        public float minTilt = -15;
        public float maxTilt = 25;


        float nextSwitchTime;

        private void Update()
        {
            if (Time.time > nextSwitchTime)
            {
                nextSwitchTime = Time.time + Random.Range(minDelay, maxDelay);
                Next();
            }
        }

        void Next()
        {
            var t = CameraTarget.GetNextByTime();

            if (t != null)
            {
                t.Use();
                cameraSystem.nominalTilt = Random.Range(minTilt, maxTilt);
                cameraSystem.nominalPan = Random.Range(minPan, maxPan);
            }

            if (t != cameraSystem.target)
                cameraSystem.SetTarget(t);

        }
    }
}