internal static bool Prepare(GameObject gameObject, Container template, Vector3 referencePoint)
        {
            if (gameObject.GetComponent <RepairableContainer>() != null)
            {
                return(false);
            }

            RepairableContainer repairable = GetOrCreateComponent <RepairableContainer>(gameObject);

            repairable.Template        = template.gameObject;
            repairable.ParentContainer = GetParent(repairable.Template);
            repairable.TargetPosition  = RepairableContainer.GetTargetPosition(repairable.ParentContainer, referencePoint);
            repairable.TargetRotation  = Quaternion.identity;
            repairable.RequiresTools   = gameObject.CompareTag("Metal");

            GetOrCreateComponent <BoxCollider>(gameObject);

            gameObject.layer = vp_Layer.Container;

            return(true);
        }
        internal static bool Prepare(GameObject gameObject, Container template, Vector3 referencePoint)
        {
            if (gameObject.GetComponent <RepairableContainer>() != null)
            {
                return(false);
            }

            RepairableContainer repairable = gameObject.AddComponent <RepairableContainer>();

            repairable.Template        = GetParent(template);
            repairable.ParentContainer = GetParent(repairable.Template);
            repairable.TargetPosition  = RepairableContainer.GetTargetPosition(repairable.ParentContainer, referencePoint);
            repairable.TargetRotation  = repairable.Template.transform.localRotation;
            repairable.RequiresTools   = true;

            if (gameObject.GetComponent <Collider>() == null)
            {
                gameObject.AddComponent <BoxCollider>();
            }

            gameObject.layer = vp_Layer.Container;

            return(true);
        }