using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.Rendering.Universal;

public class OcclusionManager : MonoBehaviour {
    [SerializeField] private bool occludeLights = true;
    [SerializeField] private List<Light2D> lights = new();
    
    private Transform _transform;
    
    private void Awake()
    {
        _transform = transform;

        //Get lights
        if(occludeLights)
            lights = FindObjectsOfType<Light2D>().Select(a => a.GetComponent<Light2D>()).ToList();
    }
    
    void Update() {
        if (occludeLights)
        {
            foreach (Light2D light in lights)
            {
                if (light.lightType != Light2D.LightType.Global)
                {
                    if ((_transform.position - light.transform.position).sqrMagnitude > gameData.LightOcclusionDistance * gameData.LightOcclusionDistance)
                        light.enabled = false;
                    else
                        light.enabled = true;
                }
            }
        }
    }
}