public static int HourInteger(int tile) { long absTicks = GenLocalDate.TicksAbs; Vector2 vector = Find.WorldGrid.LongLatOf(tile); return(GenDate.HourInteger(absTicks, vector.x)); }
public static void DateOnGUI(Rect dateRect) { Vector2 location; if (WorldRendererUtility.WorldRenderedNow && Find.WorldSelector.selectedTile >= 0) { location = Find.WorldGrid.LongLatOf(Find.WorldSelector.selectedTile); } else if (WorldRendererUtility.WorldRenderedNow && Find.WorldSelector.NumSelectedObjects > 0) { location = Find.WorldGrid.LongLatOf(Find.WorldSelector.FirstSelectedObject.Tile); } else { if (Find.VisibleMap == null) { return; } location = Find.WorldGrid.LongLatOf(Find.VisibleMap.Tile); } int index = GenDate.HourInteger(Find.TickManager.TicksAbs, location.x); int num = GenDate.DayOfTwelfth(Find.TickManager.TicksAbs, location.x); Season season = GenDate.Season(Find.TickManager.TicksAbs, location); Quadrum quadrum = GenDate.Quadrum(Find.TickManager.TicksAbs, location.x); int num2 = GenDate.Year(Find.TickManager.TicksAbs, location.x); string text = (!DateReadout.SeasonLabelVisible) ? string.Empty : season.LabelCap(); if (num != DateReadout.dateStringDay || season != DateReadout.dateStringSeason || quadrum != DateReadout.dateStringQuadrum || num2 != DateReadout.dateStringYear) { DateReadout.dateString = GenDate.DateReadoutStringAt(Find.TickManager.TicksAbs, location); DateReadout.dateStringDay = num; DateReadout.dateStringSeason = season; DateReadout.dateStringQuadrum = quadrum; DateReadout.dateStringYear = num2; } Text.Font = GameFont.Small; Vector2 vector = Text.CalcSize(DateReadout.fastHourStrings[index]); float x = vector.x; Vector2 vector2 = Text.CalcSize(DateReadout.dateString); float a = Mathf.Max(x, (float)(vector2.x + 7.0)); Vector2 vector3 = Text.CalcSize(text); float num3 = Mathf.Max(a, vector3.x); dateRect.xMin = dateRect.xMax - num3; if (Mouse.IsOver(dateRect)) { Widgets.DrawHighlight(dateRect); } GUI.BeginGroup(dateRect); Text.Font = GameFont.Small; Text.Anchor = TextAnchor.UpperRight; Rect rect = dateRect.AtZero(); rect.xMax -= 7f; Widgets.Label(rect, DateReadout.fastHourStrings[index]); rect.yMin += 26f; Widgets.Label(rect, DateReadout.dateString); rect.yMin += 26f; if (!text.NullOrEmpty()) { Widgets.Label(rect, text); } Text.Anchor = TextAnchor.UpperLeft; GUI.EndGroup(); TooltipHandler.TipRegion(dateRect, new TipSignal(delegate { StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < 4; i++) { Quadrum quadrum2 = (Quadrum)i; stringBuilder.AppendLine(quadrum2.Label() + " - " + quadrum2.GetSeason(location.y).LabelCap()); } return("DateReadoutTip".Translate(GenDate.DaysPassed, 15, season.LabelCap(), 15, GenDate.Quadrum(GenTicks.TicksAbs, location.x).Label(), stringBuilder.ToString())); }, 86423)); }
private void DoArchivableRow(Rect rect, IArchivable archivable, int index) { if (index % 2 == 1) { Widgets.DrawLightHighlight(rect); } Widgets.DrawHighlightIfMouseover(rect); Text.Font = GameFont.Small; Text.Anchor = TextAnchor.MiddleLeft; Text.WordWrap = false; Rect rect2 = rect; Rect rect3 = rect2; rect3.width = 30f; rect2.xMin += 40f; float num; if (Find.Archive.IsPinned(archivable)) { num = 1f; } else if (Mouse.IsOver(rect3)) { num = 0.25f; } else { num = 0f; } if (num > 0f) { GUI.color = new Color(1f, 1f, 1f, num); GUI.DrawTexture(new Rect(rect3.x + (rect3.width - 22f) / 2f, rect3.y + (rect3.height - 22f) / 2f, 22f, 22f).Rounded(), MainTabWindow_History.PinTex); GUI.color = Color.white; } Rect rect4 = rect2; Rect outerRect = rect2; outerRect.width = 30f; rect2.xMin += 40f; Texture archivedIcon = archivable.ArchivedIcon; if (archivedIcon != null) { GUI.color = archivable.ArchivedIconColor; Widgets.DrawTextureFitted(outerRect, archivedIcon, 0.8f); GUI.color = Color.white; } Rect rect5 = rect2; rect5.width = 200f; rect2.xMin += 210f; Vector2 location = (Find.CurrentMap == null) ? default(Vector2) : Find.WorldGrid.LongLatOf(Find.CurrentMap.Tile); GUI.color = new Color(0.75f, 0.75f, 0.75f); int num2 = GenDate.TickGameToAbs(archivable.CreatedTicksGame); string str = string.Concat(new object[] { GenDate.DateFullStringAt((long)num2, location), ", ", GenDate.HourInteger((long)num2, location.x), "LetterHour".Translate() }); Widgets.Label(rect5, str.Truncate(rect5.width, null)); GUI.color = Color.white; Rect rect6 = rect2; Widgets.Label(rect6, archivable.ArchivedLabel.Truncate(rect6.width, null)); GenUI.ResetLabelAlign(); Text.WordWrap = true; TooltipHandler.TipRegion(rect3, "PinArchivableTip".Translate(200)); if (Mouse.IsOver(rect4)) { TooltipHandler.TipRegion(rect4, archivable.ArchivedTooltip); } if (Widgets.ButtonInvisible(rect3, false)) { if (Find.Archive.IsPinned(archivable)) { Find.Archive.Unpin(archivable); SoundDefOf.Checkbox_TurnedOff.PlayOneShotOnCamera(null); } else { Find.Archive.Pin(archivable); SoundDefOf.Checkbox_TurnedOn.PlayOneShotOnCamera(null); } } if (Widgets.ButtonInvisible(rect4, false)) { if (Event.current.button == 1) { LookTargets lookTargets = archivable.LookTargets; if (CameraJumper.CanJump(lookTargets.TryGetPrimaryTarget())) { CameraJumper.TryJumpAndSelect(lookTargets.TryGetPrimaryTarget()); Find.MainTabsRoot.EscapeCurrentTab(true); } } else { archivable.OpenArchived(); } } }
public static int HourInteger(Thing thing) { return(GenDate.HourInteger(GenLocalDate.TicksAbs, GenLocalDate.LongitudeForDate(thing))); }
public static void DateOnGUI(Rect dateRect) { Vector2 vector; if (WorldRendererUtility.WorldRenderedNow && Find.WorldSelector.selectedTile >= 0) { vector = Find.WorldGrid.LongLatOf(Find.WorldSelector.selectedTile); } else if (WorldRendererUtility.WorldRenderedNow && Find.WorldSelector.NumSelectedObjects > 0) { vector = Find.WorldGrid.LongLatOf(Find.WorldSelector.FirstSelectedObject.Tile); } else { if (Find.CurrentMap == null) { return; } vector = Find.WorldGrid.LongLatOf(Find.CurrentMap.Tile); } int index = GenDate.HourInteger(Find.TickManager.TicksAbs, vector.x); int num = GenDate.DayOfTwelfth(Find.TickManager.TicksAbs, vector.x); Season season = GenDate.Season(Find.TickManager.TicksAbs, vector); Quadrum quadrum = GenDate.Quadrum(Find.TickManager.TicksAbs, vector.x); int num2 = GenDate.Year(Find.TickManager.TicksAbs, vector.x); string text = (SeasonLabelVisible ? seasonsCached[(int)season] : ""); if (num != dateStringDay || season != dateStringSeason || quadrum != dateStringQuadrum || num2 != dateStringYear) { dateString = GenDate.DateReadoutStringAt(Find.TickManager.TicksAbs, vector); dateStringDay = num; dateStringSeason = season; dateStringQuadrum = quadrum; dateStringYear = num2; } Text.Font = GameFont.Small; float num3 = Mathf.Max(Mathf.Max(Text.CalcSize(fastHourStrings[index]).x, Text.CalcSize(dateString).x), Text.CalcSize(text).x) + 7f; dateRect.xMin = dateRect.xMax - num3; if (Mouse.IsOver(dateRect)) { Widgets.DrawHighlight(dateRect); } GUI.BeginGroup(dateRect); Text.Font = GameFont.Small; Text.Anchor = TextAnchor.UpperRight; Rect rect = dateRect.AtZero(); rect.xMax -= 7f; Widgets.Label(rect, fastHourStrings[index]); rect.yMin += 26f; Widgets.Label(rect, dateString); rect.yMin += 26f; if (!text.NullOrEmpty()) { Widgets.Label(rect, text); } Text.Anchor = TextAnchor.UpperLeft; GUI.EndGroup(); if (Mouse.IsOver(dateRect)) { StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < 4; i++) { Quadrum quadrum2 = (Quadrum)i; stringBuilder.AppendLine(quadrum2.Label() + " - " + quadrum2.GetSeason(vector.y).LabelCap()); } TaggedString taggedString = "DateReadoutTip".Translate(GenDate.DaysPassed, 15, season.LabelCap(), 15, GenDate.Quadrum(GenTicks.TicksAbs, vector.x).Label(), stringBuilder.ToString()); TooltipHandler.TipRegion(dateRect, new TipSignal(taggedString, 86423)); } }
public static int HourInteger(int tile) { return(GenDate.HourInteger((long)GenLocalDate.TicksAbs, Find.WorldGrid.LongLatOf(tile).x)); }