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

public class ZDisablerV2 : NetworkBehaviour
{
    [Tooltip("Add all the objects to disable on join, if not owner")]
    public UnityEngine.Object[] objectsToDisable;

    private void OnEnable()
    {
        // Run if networked
        if (NetworkManager.Singleton == null || IsOwner) return;

        for (int i = 0; i < objectsToDisable.Length; i++)
        {
            var objectType = objectsToDisable[i]; // Apparently, "typeof" is not needed /shrug

            switch (objectType)
            {
                case MonoBehaviour monoBehaviour:
                    monoBehaviour.enabled = false;
                    break;

                case GameObject gameObject:
                    gameObject.SetActive(false);
                    break;

                case Rigidbody rigidbody:
                    rigidbody.isKinematic = true;
                    break;

                default:
                    Debug.LogError($"Can't disable: {objectType.name} (not supported)", objectType);
                    break;
            }
        }
    }
}