Пример #1
0
 public void NotifyNewArchivedMessage(ArchivedMessage message)
 {
     if (!archivedMessages.Contains(message))
     {
         archivedMessages.Add(message);
     }
 }
        public static void Postfix(string text, MessageSound sound)
        {
            var plainMsg = new ArchivedMessage(text, GlobalTargetInfo.Invalid);

            var logger = Current.Game.GetComponent <Logger>();

            if (logger != null)
            {
                logger.NotifyNewArchivedMessage(plainMsg);
            }
        }
        private void DrawMessage(Rect originalRect, ArchivedMessage message, float topY)
        {
            //Draw message rect
            Rect msgRect = new Rect(originalRect.x, topY, originalRect.width, Text.LineHeight * 2f);

            //Draw message content
            Text.Anchor = TextAnchor.MiddleLeft;
            Widgets.Label(msgRect, message.text);
            Text.Anchor = TextAnchor.UpperLeft;             //Reset to RimWorld default

            //Thing target button and highlight if lookTarget exists
            if (message.lookTarget.IsValid)
            {
                Widgets.DrawHighlightIfMouseover(msgRect);
                TooltipHandler.TipRegion(msgRect, "Notifications_Archiver_TargetedMessage_Tooltip".Translate());

                if (Widgets.ButtonInvisible(msgRect, false))
                {
                    CameraJumper.TryJumpAndSelect(message.lookTarget);
                }
            }
        }