using GhostSystem;
using NUnit.Framework;
using System;
using System.Collections.Generic;
using Unity.Netcode;
using UnityEngine;

public class LocalPlayerReference : NetworkBehaviour
{
    public static LocalPlayerReference Instance { get; private set; }

    public List<Transform> myObjects;

    public EyeTrackingCollisionPoints collisionPoints;

    public static event Action OnPlayerReady;
    public override void OnNetworkSpawn()
    {
        if (IsOwner)
        {
            Instance = this;

            Debug.Log("[LocalPlayerReference] Lokaler Spieler registriert.");

            // Optional: Liste von Transforms vorbereiten
            GhostRecorderBatch ghostRecorder = FindFirstObjectByType<GhostRecorderBatch>();
            if (ghostRecorder != null)
            {
                foreach (Transform obj in myObjects)
                {
                    ghostRecorder.TrackedObjects.Add(obj);
                }
            }
            ghostRecorder.TrackedObjects.Add(collisionPoints.SpawnHitPoint());
            OnPlayerReady?.Invoke();
            Debug.LogError("Invoked OnPlayerReady");
        }
    }

    private void OnDestroy()
    {
        if (IsOwner && Instance == this)
        {
            Instance = null;
        }
    }
}
