示例#1
0
        private static void Postfix(UIButton __result, GeneratedScrollPanel __instance, string name, string tooltip, string baseIconName, int index, UITextureAtlas atlas, UIComponent tooltipBox, bool enabled)
        {
            if (Settings.hideExtraUIonVP)
            {
                return;
            }

            __result.eventVisibilityChanged += new PropertyChangedEventHandler <bool>(Init);

            GeneratedScrollPanel panel = __instance;

            SimulationManager.instance.AddAction(() =>
            {
                if (__result.objectUserData is PrefabInfo prefab)
                {
                    string key = Asset.GetName(prefab);

                    if (AssetTagList.instance.assets.ContainsKey(key))
                    {
                        if (AssetTagList.instance.assets[key].onButtonClicked == null)
                        {
                            MethodInfo onButtonClicked = panel.GetType().GetMethod("OnButtonClicked", BindingFlags.NonPublic | BindingFlags.Instance);
                            AssetTagList.instance.assets[key].onButtonClicked = Delegate.CreateDelegate(typeof(Asset.OnButtonClicked), panel, onButtonClicked, false) as Asset.OnButtonClicked;
                        }
                    }
                }
            });
        }
示例#2
0
        new protected UIButton CreateButton(string name, string tooltip, string baseIconName, int index, UITextureAtlas atlas, UIComponent tooltipBox, bool enabled)
        {
            UIScrollablePanel m_ScrollablePanel  = (UIScrollablePanel)typeof(GeneratedScrollPanel).GetField("m_ScrollablePanel", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(this);
            FieldInfo         m_ObjectIndexField = typeof(GeneratedScrollPanel).GetField("m_ObjectIndex", BindingFlags.Instance | BindingFlags.NonPublic);
            int m_ObjectIndex = (int)m_ObjectIndexField.GetValue(this);

            UIButton uIButton;

            if (m_ScrollablePanel.childCount > m_ObjectIndex)
            {
                uIButton = (m_ScrollablePanel.components[m_ObjectIndex] as UIButton);
            }
            else
            {
                GameObject asGameObject = UITemplateManager.GetAsGameObject("PlaceableItemTemplate");
                uIButton = (m_ScrollablePanel.AttachUIComponent(asGameObject) as UIButton);
            }
            uIButton.gameObject.GetComponent <TutorialUITag>().tutorialTag = name;
            uIButton.text                = string.Empty;
            uIButton.name                = name;
            uIButton.tooltipAnchor       = UITooltipAnchor.Anchored;
            uIButton.tabStrip            = true;
            uIButton.horizontalAlignment = UIHorizontalAlignment.Center;
            uIButton.verticalAlignment   = UIVerticalAlignment.Middle;
            uIButton.pivot               = UIPivotPoint.TopCenter;
            if (atlas != null)
            {
                uIButton.atlas = atlas;
            }
            if (index != -1)
            {
                uIButton.zOrder = index;
            }
            uIButton.verticalAlignment    = this.buttonsAlignment;
            uIButton.foregroundSpriteMode = UIForegroundSpriteMode.Fill;
            uIButton.normalFgSprite       = baseIconName;
            uIButton.focusedFgSprite      = baseIconName + "Focused";
            uIButton.hoveredFgSprite      = baseIconName + "Hovered";
            uIButton.pressedFgSprite      = baseIconName + "Pressed";
            uIButton.disabledFgSprite     = baseIconName + "Disabled";
            UIComponent uIComponent = (uIButton.childCount <= 0) ? null : uIButton.components[0];

            if (uIComponent != null)
            {
                uIComponent.isVisible = false;
            }
            uIButton.isEnabled  = enabled;
            uIButton.tooltip    = tooltip;
            uIButton.tooltipBox = tooltipBox;
            uIButton.group      = base.component;
            m_ObjectIndexField.SetValue(this, m_ObjectIndex + 1);

            // Start mod

            uIButton.eventVisibilityChanged += new PropertyChangedEventHandler <bool>(Init);

            GeneratedScrollPanel panel = this;

            SimulationManager.instance.AddAction(() =>
            {
                if (uIButton.objectUserData is PrefabInfo prefab)
                {
                    string key = Asset.GetName(prefab);
                    if (AssetTagList.instance.assets.ContainsKey(key))
                    {
                        if (AssetTagList.instance.assets[key].onButtonClicked == null)
                        {
                            MethodInfo onButtonClicked = panel.GetType().GetMethod("OnButtonClicked", BindingFlags.NonPublic | BindingFlags.Instance);
                            AssetTagList.instance.assets[key].onButtonClicked = Delegate.CreateDelegate(typeof(Asset.OnButtonClicked), panel, onButtonClicked, false) as Asset.OnButtonClicked;
                        }
                    }
                }
            });

            // End mod

            return(uIButton);
        }