Пример #1
0
 protected float DrawEntryLinkWidget(Rect titleRect, UpdateFeatureDef forDef)
 {
     if (forDef.linkUrl != null)
     {
         Text.Anchor = TextAnchor.MiddleCenter;
         var linkRect = new Rect(titleRect.width - linkTextWidth, titleRect.y,
                                 linkTextWidth, titleRect.height);
         var prevColor = GUI.color;
         GUI.color = LinkTextColor;
         Widgets.Label(linkRect, "HugsLib_features_link".Translate());
         GUI.color = prevColor;
         GenUI.ResetLabelAlign();
         if (Widgets.ButtonInvisible(linkRect))
         {
             Application.OpenURL(forDef.linkUrl);
         }
         if (Mouse.IsOver(linkRect))
         {
             Widgets.DrawHighlight(linkRect);
             var descriptionText = "HugsLib_features_linkDesc".Translate();
             TooltipHandler.TipRegion(linkRect, descriptionText.Replace("{0}", forDef.linkUrl));
         }
         return(linkTextWidth);
     }
     return(0);
 }
Пример #2
0
        protected override void DrawEntryTitleWidgets(Rect titleRect, UpdateFeatureDef forDef)
        {
            var linkWidgetWidth = DrawEntryLinkWidget(titleRect, forDef);

            if (Prefs.DevMode)
            {
                DrawDevToolsMenuWidget(titleRect, linkWidgetWidth, forDef);
            }
        }
Пример #3
0
 private void OpenDevToolsDropdownMenu(UpdateFeatureDef forDef)
 {
     Find.WindowStack.Add(
         new FloatMenu(
             devMenu.GetMenuOptions(forDef)
             .Select(o => new FloatMenuOption(o.label, o.action)
     {
         Disabled = o.disabled
     })
             .ToList()
             )
         );
 }
Пример #4
0
        public void NullPackageIdTest()
        {
            var noPackageDef = new UpdateFeatureDef();

            Assert.IsNull(noPackageDef.modContentPack);
            Assert.IsNull(noPackageDef.OverridePackageId);
            Assert.Throws <InvalidOperationException>(() => {
                var _ = UpdateFeatureManager.FilterFeatureDefsByMatchingAudience(
                    new[] { noPackageDef }, s => false, ex => throw ex
                    ).ToArray();
            }
                                                      );
        }
Пример #5
0
        private void DrawDevToolsMenuWidget(Rect titleRect, float widgetOffset, UpdateFeatureDef forDef)
        {
            var widgetSize = titleRect.height;
            var widgetRect = new Rect(titleRect.width - widgetOffset - widgetSize,
                                      titleRect.y, widgetSize, widgetSize);

            if (Mouse.IsOver(widgetRect))
            {
                Widgets.DrawHighlight(widgetRect);
            }
            var buttonTexture = HugsLibTextures.HLMenuIcon;
            var textureRect   = new Rect(
                widgetRect.center.x - buttonTexture.width / 2f, widgetRect.center.y - buttonTexture.height / 2f,
                buttonTexture.width, buttonTexture.height
                );

            Widgets.DrawTextureFitted(textureRect, buttonTexture, 1f);
            if (Widgets.ButtonInvisible(widgetRect))
            {
                OpenDevToolsDropdownMenu(forDef);
            }
        }
 public FeatureEntry(UpdateFeatureDef def, List <DescriptionSegment> segments)
 {
     this.def      = def;
     this.segments = segments;
 }
Пример #7
0
 protected virtual void DrawEntryTitleWidgets(Rect titleRect, UpdateFeatureDef forDef)
 {
     DrawEntryLinkWidget(titleRect, forDef);
 }
        public IEnumerable <(string label, Action action, bool disabled)> GetMenuOptions(UpdateFeatureDef forDef)
        {
            var modName = forDef.modNameReadable;

            return(new(string, Action, bool)[] {