Ejemplo n.º 1
0
        private void PreDrawPawnRow(Rect rect, ThingWithComps p)
        {
            Rect rect2 = new Rect(0f, rect.y, rect.width, PawnRowHeight);

            if (Mouse.IsOver(rect2))
            {
                GUI.DrawTexture(rect2, TexUI.HighlightTex);
            }
            Rect rect3    = new Rect(0f, rect.y, 175f, PawnRowHeight);
            Rect position = rect3.ContractedBy(3f);

            if (p is Pawn)
            {
                if ((p as Pawn).health.summaryHealth.SummaryHealthPercent < 0.999f)
                {
                    Rect rect4 = new Rect(rect3);
                    rect4.xMin -= 4f;
                    rect4.yMin += 4f;
                    rect4.yMax -= 6f;
                    Widgets.FillableBar(rect4, (p as Pawn).health.summaryHealth.SummaryHealthPercent, GenMapUI.OverlayHealthTex, BaseContent.ClearTex, false);
                }
            }
            if (Mouse.IsOver(rect3))
            {
                GUI.DrawTexture(position, TexUI.HighlightTex);
            }
            string label;
            Pawn   p1 = (p is Corpse) ? (p as Corpse).InnerPawn : p as Pawn;

            if (!p1.RaceProps.Humanlike && p1.Name != null && !p1.Name.Numerical)
            {
                label = p1.Name.ToStringShort.CapitalizeFirst() + ", " + p1.KindLabel;
            }
            else
            {
                label = p1.LabelCap;
            }
            Text.Font     = GameFont.Small;
            Text.Anchor   = TextAnchor.MiddleLeft;
            Text.WordWrap = false;
            Rect rect5 = new Rect(rect3);

            rect5.xMin += 15f;
            Widgets.Label(rect5, label);
            Text.WordWrap = true;
            if (Widgets.ButtonInvisible(rect3))
            {
                //shift-selection: keep tab, don't deselect, don't move camera
                if (Event.current.shift)
                {
                    //do nothing
                }
                //alt-selection: deselect, remove tab
                else if (Event.current.alt)
                {
                    Find.MainTabsRoot.EscapeCurrentTab(true);
                    Find.Selector.ClearSelection();
                }
                //normal selection: remove tab, deselect, move camera
                else
                {
                    Find.MainTabsRoot.EscapeCurrentTab(true);
                    Find.Selector.ClearSelection();
                    Find.CameraDriver.JumpTo(p.PositionHeld);
                }

                //finally select if pawn is present
                if (p.Spawned)
                {
                    Find.Selector.Select(p, true, true);
                }
                return;
            }
            TipSignal tooltip = p.GetTooltip();

            tooltip.text = "ClickToJumpTo".Translate() + "\n\n" + tooltip.text;
            TooltipHandler.TipRegion(rect3, tooltip);
        }
Ejemplo n.º 2
0
		private void PreDrawPawnRow(Rect rect, ThingWithComps p)
		{
			Rect rect2 = new Rect(0f, rect.y, rect.width, PawnRowHeight);
			if (Mouse.IsOver(rect2))
			{
				GUI.DrawTexture(rect2, TexUI.HighlightTex);
			}
			Rect rect3 = new Rect(0f, rect.y, 175f, PawnRowHeight);
			Rect position = rect3.ContractedBy(3f);
            if (p is Pawn)
            {
			    if ((p as Pawn).health.summaryHealth.SummaryHealthPercent < 0.999f)
			    {
				    Rect rect4 = new Rect(rect3);
				    rect4.xMin -= 4f;
				    rect4.yMin += 4f;
				    rect4.yMax -= 6f;
				    Widgets.FillableBar(rect4, (p as Pawn).health.summaryHealth.SummaryHealthPercent, GenWorldUI.OverlayHealthTex, BaseContent.ClearTex, false);
			    }
            }
			if (Mouse.IsOver(rect3))
			{
				GUI.DrawTexture(position, TexUI.HighlightTex);
			}
			string label;
            Pawn p1 = (p is Corpse) ? (p as Corpse).innerPawn : p as Pawn;
			if (!p1.RaceProps.Humanlike && p1.Name != null && !p1.Name.Numerical)
			{
				label = p1.Name.ToStringShort.CapitalizeFirst() + ", " + p1.KindLabel;
			}
			else
			{
				label = p1.LabelCap;
			}
			Text.Font = GameFont.Small;
			Text.Anchor = TextAnchor.MiddleLeft;
			Text.WordWrap = false;
			Rect rect5 = new Rect(rect3);
			rect5.xMin += 15f;
			Widgets.Label(rect5, label);
			Text.WordWrap = true;
			if (Widgets.ButtonInvisible(rect3))
			{
				Find.MainTabsRoot.EscapeCurrentTab(true);
                Find.CameraDriver.JumpTo(p.PositionHeld);
				Find.Selector.ClearSelection();
				if (p.Spawned)
				{
					Find.Selector.Select(p, true, true);
				}
				return;
			}
			TipSignal tooltip = p.GetTooltip();
			tooltip.text = "ClickToJumpTo".Translate() + "\n\n" + tooltip.text;
			TooltipHandler.TipRegion(rect3, tooltip);
		}