public void OnPartDisabled(bool sendsSignalToManager = true)
    {
        grabInteractableScript.interactionLayerMask = 0;
        grabInteractableScript.enabled = false;
        if (mainRenderer != null)
        {
            mainRenderer.enabled = false;
        }
        if (mainPartColl != null)
        {
            mainPartColl.enabled = false;
        }
        // Disable extra colliders and renderers
        for (int i = 0; i < transform.childCount; i++)
        {
            transform.GetChild(i).gameObject.SetActive(false);
        }
        rb.isKinematic = true;
        rb.useGravity  = false;

        physicsObjectHandler.OnPartDisabled();

        transform.localPosition = Vector3.zero;
        transform.localRotation = Quaternion.identity;

        // Add it back to the available pool when disabled
        if (sendsSignalToManager)
        {
            partsSpawnManager.OnPartInstanceDisabled(gameObject);
        }
    }