Beispiel #1
0
            static void rebuildTooltip(uGUI_Tooltip __instance, CanvasUpdate executing)             // TODO BRANCH_EXP: most of this code is unneeded on exp branch
            {
                const float tooltipOffsetX = 30f;

                if (text.text == "" || executing != CanvasUpdate.Layout)
                {
                    return;
                }

                float tooltipHeight = -__instance.rectTransform.rect.y;
                float textHeight    = text.rectTransform.sizeDelta.y;

                __instance.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, tooltipHeight + textHeight);

                float tooltipWidth = __instance.rectTransform.rect.xMax;
                float textWidth    = text.rectTransform.sizeDelta.x + tooltipOffsetX;

                if (tooltipWidth < textWidth)
                {
                    __instance.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, textWidth);
                }

                float textPosY = __instance.iconCanvas.transform.localPosition.y - __instance.iconCanvas.rectTransform.sizeDelta.y;

                text.rectTransform.localPosition = new Vector2(textPosX, textPosY);
            }
Beispiel #2
0
        static void init(uGUI_Tooltip tooltip)
        {
            if (!tooltip || tooltip.GetComponent <BulkCraftingInitedTag>())
            {
                return;
            }

            tooltip.gameObject.AddComponent <BulkCraftingInitedTag>();

            var textGO       = tooltip.gameObject.getChild(Mod.Consts.isBranchStable? "Text": "Container/Text");
            var textGOBottom = textGO.getParent().createChild(textGO, "BottomText");

            var sizeFitter = textGOBottom.AddComponent <ContentSizeFitter>();

            sizeFitter.verticalFit   = ContentSizeFitter.FitMode.PreferredSize;
            sizeFitter.horizontalFit = ContentSizeFitter.FitMode.PreferredSize;

            text = textGOBottom.GetComponent <Text>();
            text.horizontalOverflow = HorizontalWrapMode.Overflow;
            text.verticalOverflow   = VerticalWrapMode.Truncate;
            textPosX = text.rectTransform.localPosition.x;

            text.text = _writeAction("tmp");             // adding temporary text to update rect size
        }
Beispiel #3
0
 static void awakePatch(uGUI_Tooltip __instance) => init(__instance);