public override GizmoResult GizmoOnGUI(Vector2 topLeft) { Rect rect = new Rect(topLeft.x, topLeft.y, this.Width, 75f); bool flag = false; if (Mouse.IsOver(rect)) { flag = true; GUI.color = GenUI.MouseoverColor; } Texture2D badTex = this.icon; if ((Object)badTex == (Object)null) { badTex = BaseContent.BadTex; } GUI.DrawTexture(rect, Command.BGTex); MouseoverSounds.DoRegion(rect, SoundDefOf.MouseoverCommand); GUI.color = this.IconDrawColor; Widgets.DrawTextureFitted(rect, badTex, (float)(this.iconDrawScale * 0.85000002384185791), this.iconProportions, this.iconTexCoords, this.iconAngle); GUI.color = Color.white; bool flag2 = false; KeyCode keyCode = (this.hotKey != null) ? this.hotKey.MainKey : KeyCode.None; if (keyCode != 0 && !GizmoGridDrawer.drawnHotKeys.Contains(keyCode)) { Rect rect2 = new Rect((float)(rect.x + 5.0), (float)(rect.y + 5.0), (float)(rect.width - 10.0), 18f); Widgets.Label(rect2, keyCode.ToStringReadable()); GizmoGridDrawer.drawnHotKeys.Add(keyCode); if (this.hotKey.KeyDownEvent) { flag2 = true; Event.current.Use(); } } if (Widgets.ButtonInvisible(rect, false)) { flag2 = true; } string labelCap = this.LabelCap; if (!labelCap.NullOrEmpty()) { float num = Text.CalcHeight(labelCap, rect.width); Rect rect3 = new Rect(rect.x, (float)(rect.yMax - num + 12.0), rect.width, num); GUI.DrawTexture(rect3, TexUI.GrayTextBG); GUI.color = Color.white; Text.Anchor = TextAnchor.UpperCenter; Widgets.Label(rect3, labelCap); Text.Anchor = TextAnchor.UpperLeft; GUI.color = Color.white; } GUI.color = Color.white; if (this.DoTooltip) { TipSignal tip = this.Desc; if (base.disabled && !base.disabledReason.NullOrEmpty()) { string text = tip.text; tip.text = text + "\n\n" + "DisabledCommand".Translate() + ": " + base.disabledReason; } TooltipHandler.TipRegion(rect, tip); } if (!this.HighlightTag.NullOrEmpty() && (Find.WindowStack.FloatMenu == null || !Find.WindowStack.FloatMenu.windowRect.Overlaps(rect))) { UIHighlighter.HighlightOpportunity(rect, this.HighlightTag); } if (flag2) { if (base.disabled) { if (!base.disabledReason.NullOrEmpty()) { Messages.Message(base.disabledReason, MessageTypeDefOf.RejectInput); } return(new GizmoResult(GizmoState.Mouseover, null)); } if (!TutorSystem.AllowAction(this.TutorTagSelect)) { return(new GizmoResult(GizmoState.Mouseover, null)); } GizmoResult result = new GizmoResult(GizmoState.Interacted, Event.current); TutorSystem.Notify_Event(this.TutorTagSelect); return(result); } if (flag) { return(new GizmoResult(GizmoState.Mouseover, null)); } return(new GizmoResult(GizmoState.Clear, null)); }
public override GizmoResult GizmoOnGUI(Vector2 topLeft, float maxWidth) { Text.Font = GameFont.Tiny; Rect rect = new Rect(topLeft.x, topLeft.y, this.GetWidth(maxWidth), 75f); bool flag = false; if (Mouse.IsOver(rect)) { flag = true; if (!this.disabled) { GUI.color = GenUI.MouseoverColor; } } Texture2D badTex = this.icon; if (badTex == null) { badTex = BaseContent.BadTex; } Material material = (!this.disabled) ? null : TexUI.GrayscaleGUI; GenUI.DrawTextureWithMaterial(rect, Command.BGTex, material, default(Rect)); MouseoverSounds.DoRegion(rect, SoundDefOf.Mouseover_Command); Rect outerRect = rect; outerRect.position += new Vector2(this.iconOffset.x * outerRect.size.x, this.iconOffset.y * outerRect.size.y); GUI.color = this.IconDrawColor; Widgets.DrawTextureFitted(outerRect, badTex, this.iconDrawScale * 0.85f, this.iconProportions, this.iconTexCoords, this.iconAngle, material); GUI.color = Color.white; bool flag2 = false; KeyCode keyCode = (this.hotKey != null) ? this.hotKey.MainKey : KeyCode.None; if (keyCode != KeyCode.None && !GizmoGridDrawer.drawnHotKeys.Contains(keyCode)) { Rect rect2 = new Rect(rect.x + 5f, rect.y + 5f, rect.width - 10f, 18f); Widgets.Label(rect2, keyCode.ToStringReadable()); GizmoGridDrawer.drawnHotKeys.Add(keyCode); if (this.hotKey.KeyDownEvent) { flag2 = true; Event.current.Use(); } } if (Widgets.ButtonInvisible(rect, false)) { flag2 = true; } string labelCap = this.LabelCap; if (!labelCap.NullOrEmpty()) { float num = Text.CalcHeight(labelCap, rect.width); Rect rect3 = new Rect(rect.x, rect.yMax - num + 12f, rect.width, num); GUI.DrawTexture(rect3, TexUI.GrayTextBG); GUI.color = Color.white; Text.Anchor = TextAnchor.UpperCenter; Widgets.Label(rect3, labelCap); Text.Anchor = TextAnchor.UpperLeft; GUI.color = Color.white; } GUI.color = Color.white; if (this.DoTooltip) { TipSignal tip = this.Desc; if (this.disabled && !this.disabledReason.NullOrEmpty()) { string text = tip.text; tip.text = string.Concat(new string[] { text, "\n\n", "DisabledCommand".Translate(), ": ", this.disabledReason }); } TooltipHandler.TipRegion(rect, tip); } if (!this.HighlightTag.NullOrEmpty() && (Find.WindowStack.FloatMenu == null || !Find.WindowStack.FloatMenu.windowRect.Overlaps(rect))) { UIHighlighter.HighlightOpportunity(rect, this.HighlightTag); } Text.Font = GameFont.Small; if (flag2) { if (this.disabled) { if (!this.disabledReason.NullOrEmpty()) { Messages.Message(this.disabledReason, MessageTypeDefOf.RejectInput, false); } return(new GizmoResult(GizmoState.Mouseover, null)); } GizmoResult result; if (Event.current.button == 1) { result = new GizmoResult(GizmoState.OpenedFloatMenu, Event.current); } else { if (!TutorSystem.AllowAction(this.TutorTagSelect)) { return(new GizmoResult(GizmoState.Mouseover, null)); } result = new GizmoResult(GizmoState.Interacted, Event.current); TutorSystem.Notify_Event(this.TutorTagSelect); } return(result); } else { if (flag) { return(new GizmoResult(GizmoState.Mouseover, null)); } return(new GizmoResult(GizmoState.Clear, null)); } }
public static void LongEventsOnGUI() { if (currentEvent == null) { GameplayTipWindow.ResetTipTimer(); return; } float num = StatusRectSize.x; lock (CurrentEventTextLock) { Text.Font = GameFont.Small; num = Mathf.Max(num, Text.CalcSize(currentEvent.eventText + "...").x + 40f); } bool flag = Find.UIRoot != null && !currentEvent.UseStandardWindow && currentEvent.showExtraUIInfo; bool flag2 = Find.UIRoot != null && Current.Game != null && !currentEvent.UseStandardWindow && currentEvent.showExtraUIInfo; Vector2 vector = (flag2 ? ModSummaryWindow.GetEffectiveSize() : Vector2.zero); float num2 = StatusRectSize.y; if (flag2) { num2 += 17f + vector.y; } if (flag) { num2 += 17f + GameplayTipWindow.WindowSize.y; } float num3 = ((float)UI.screenHeight - num2) / 2f; Vector2 offset = new Vector2(((float)UI.screenWidth - GameplayTipWindow.WindowSize.x) / 2f, num3 + StatusRectSize.y + 17f); Vector2 offset2 = new Vector2(((float)UI.screenWidth - vector.x) / 2f, offset.y + GameplayTipWindow.WindowSize.y + 17f); Rect r = new Rect(((float)UI.screenWidth - num) / 2f, num3, num, StatusRectSize.y); r = r.Rounded(); if (!currentEvent.UseStandardWindow || Find.UIRoot == null || Find.WindowStack == null) { if (UIMenuBackgroundManager.background == null) { UIMenuBackgroundManager.background = new UI_BackgroundMain(); } UIMenuBackgroundManager.background.BackgroundOnGUI(); Widgets.DrawShadowAround(r); Widgets.DrawWindowBackground(r); DrawLongEventWindowContents(r); if (flag) { GameplayTipWindow.DrawWindow(offset, useWindowStack: false); } if (flag2) { ModSummaryWindow.DrawWindow(offset2, useWindowStack: false); TooltipHandler.DoTooltipGUI(); } } else { DrawLongEventWindow(r); if (flag) { GameplayTipWindow.DrawWindow(offset, useWindowStack: true); } } }
public static void TipRegion(Rect rect, Func <string> textGetter, int uniqueId) { TooltipHandler.TipRegion(rect, new TipSignal(textGetter, uniqueId)); }