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); }
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 }
static void awakePatch(uGUI_Tooltip __instance) => init(__instance);