using Unity.Netcode;
using System.Collections.Generic;
using UnityEngine;

public class DisableIfNotOwner : NetworkBehaviour
{
    [SerializeField]
    private List<Behaviour> _enableComponents;

    [SerializeField]
    private List<GameObject> _enableGameObjects;

    [SerializeField]
    private List<Behaviour> _disableComponents;

    [SerializeField]
    private List<GameObject> _disableGameObjects;

    public void EnableObjects()
    {
        for (int i = 0; i < _enableComponents.Count; i++)
        {
            _enableComponents[i].enabled = true;
        }

        for (int i = 0; i < _enableGameObjects.Count; i++)
        {
            _enableGameObjects[i].SetActive(true);
        }
    }

    public void DisableObjects()
    {
        for(int i = 0; i< _disableComponents.Count; i++)
        {
            _disableComponents[i].enabled = false;
        }

        for (int i = 0; i < _disableGameObjects.Count; i++)
        {
            _disableGameObjects[i].SetActive(false);
        }
    }

    public override void OnNetworkSpawn()
    {
        if (IsOwner)
        {
            PlayerMessageServerRpc($"Enable Components");
            EnableObjects();
        }

        if (!IsOwner)
        {
            PlayerMessageServerRpc($"Disable Components");
            DisableObjects();
        }

        base.OnNetworkSpawn();
    }

    [ServerRpc(RequireOwnership = false)]
    public void PlayerMessageServerRpc(string message)
    {
        Debug.Log($"PlayerMessageServerRpc {OwnerClientId}" + "; " + message);
    }
}
