コード例 #1
0
        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);
        }
コード例 #2
0
        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);
                }
            }
        }
コード例 #3
0
        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);
        }