private Vector3 AdjustOwnerLabelPosToAvoidOverlapping(Vector3 screenPos, int slotIndex) { Text.Font = GameFont.Tiny; Vector2 vector = Text.CalcSize(owners[slotIndex].LabelShort); float num = vector.x + 1f; Vector2 vector2 = DrawPos.MapToUIPosition(); float num2 = Mathf.Abs(screenPos.x - vector2.x); IntVec3 sleepingSlotPos = GetSleepingSlotPos(slotIndex); if (num > num2 * 2f) { float num3 = 0f; if (slotIndex == 0) { IntVec3 sleepingSlotPos2 = GetSleepingSlotPos(1); num3 = (float)sleepingSlotPos2.x; } else { IntVec3 sleepingSlotPos3 = GetSleepingSlotPos(0); num3 = (float)sleepingSlotPos3.x; } if ((float)sleepingSlotPos.x < num3) { screenPos.x -= (num - num2 * 2f) / 2f; } else { screenPos.x += (num - num2 * 2f) / 2f; } } return(screenPos); }
public override void DrawGUIOverlay() { if (DisplayEnabled) { var text = GenText.ToStringTemperature(lastDetectedTemperature); Text.Font = GameFont.Tiny; float halfHeight = Text.CalcSize(text).y * 0.25f; var ranges = Modes[TemperatureMode]; var normal = RangeLerp(lastDetectedTemperature, ranges.Item1, ranges.Item2); var position = DrawPos.MapToUIPosition(); position.y -= halfHeight; if (!isBlocked) { var labelColor = Color.Lerp(ColdColour, HotColour, normal); labelColor.r += 0.5f; // Brighten labelColor.g += 0.5f; // Brighten labelColor.b += 0.5f; // Brighten GenMapUI.DrawThingLabel(position, text, labelColor); } else { GenMapUI.DrawThingLabel(position, "Blocked!", Color.white); } } }
private Vector3 AdjustOwnerLabelPosToAvoidOverlapping(Vector3 screenPos, int slotIndex) { Text.Font = GameFont.Tiny; float num = Text.CalcSize(OwnersForReading[slotIndex].LabelShort).x + 1f; Vector2 vector = DrawPos.MapToUIPosition(); float num2 = Mathf.Abs(screenPos.x - vector.x); IntVec3 sleepingSlotPos = GetSleepingSlotPos(slotIndex); if (num > num2 * 2f) { float num3 = 0f; num3 = ((slotIndex != 0) ? ((float)GetSleepingSlotPos(0).x) : ((float)GetSleepingSlotPos(1).x)); if ((float)sleepingSlotPos.x < num3) { screenPos.x -= (num - num2 * 2f) / 2f; } else { screenPos.x += (num - num2 * 2f) / 2f; } } return(screenPos); }