using UnityEngine; using UnityEngine.UI; namespace RoR2.UI; [RequireComponent(typeof(RectTransform))] public class MinSizeFromParentLayoutElement : MonoBehaviour, ILayoutElement { public bool useParentWidthAsMinWidth = true; public bool useParentHeightAsMinHeight = true; [SerializeField] private int _layoutPriority = 1; public float minWidth { get; protected set; } = -1f; public float preferredWidth { get; } = -1f; public float flexibleWidth { get; } = -1f; public float minHeight { get; protected set; } = -1f; public float preferredHeight { get; } = -1f; public float flexibleHeight { get; } = -1f; public int layoutPriority { get { return _layoutPriority; } set { _layoutPriority = value; } } public void CalculateLayoutInputHorizontal() { if (!useParentWidthAsMinWidth) { minWidth = -1f; return; } RectTransform rectTransform = base.transform.parent as RectTransform; minWidth = (rectTransform ? rectTransform.rect.width : (-1f)); } public void CalculateLayoutInputVertical() { if (!useParentHeightAsMinHeight) { minHeight = -1f; return; } RectTransform rectTransform = base.transform.parent as RectTransform; minHeight = (rectTransform ? rectTransform.rect.height : (-1f)); } }