public virtual void resizePart(float scale, bool pushAttachments)
        {
            if (part.FindAttachNode("bottom") is AttachNode node &&
                part.FindAttachNodes("bottom") is AttachNode[] nodes)
            {
                foreach (AttachNode n in nodes)
                {
                    Vector3 newPos = new Vector3(n.position.x, node.position.y, n.position.z);
                    PFUtils.UpdateNode(part, n, newPos, node.size, pushAttachments);
                }
            }

            if (part.GetComponent <KzNodeNumberTweaker>() is KzNodeNumberTweaker nnt)
            {
                nnt.SetRadius(Math.Min(nnt.radius, size / 2), pushAttachments);
                (nnt.Fields[nameof(nnt.radius)].uiControlEditor as UI_FloatEdit).maxValue = size / 2;
            }
        }