Ejemplo n.º 1
0
        private void MakeButtons()
        {
            foreach (var btn in buttons)
            {
                GameObject.Destroy(btn.gameObject);
            }
            buttons.Clear();

            for (int i = 0; i < modList.Buttons.Count; i++)
            {
                ModListButton  btnInfo = modList.Buttons[i];
                LobbyModButton btn     = Instantiate <GameObject>(modBtnPrefab, transform).GetComponent <LobbyModButton>();
                btn.transform.localPosition = buttonOffset + new Vector2(0, buttonYIncrement * btnInfo.Order);
                btn.manager             = this;
                btn.nameText.text       = btnInfo.NameString;
                btn.statusText.text     = btnInfo.StatusString;
                btn.listIndex           = i;
                btn.button.interactable = btnInfo.Choosable;
                buttons.Add(btn);
            }
        }
Ejemplo n.º 2
0
        private void CreateModListButton()
        {
            ModListButton = Object.Instantiate(_verticalLayout !.transform.Find("SettingsEntryButton, Bool (Audio Focus)").gameObject);

            Object.DestroyImmediate(ModListButton.GetComponentInChildren <CarouselController>());
            Object.DestroyImmediate(ModListButton.GetComponentInChildren <ButtonSkinController>());
            Object.DestroyImmediate(ModListButton.transform.Find("CarouselRect").gameObject);


            HGButton   oldButton            = ModListButton.GetComponent <HGButton>();
            bool       allowAllEventSystems = oldButton.allowAllEventSystems;
            bool       submitOnPointerUp    = oldButton.submitOnPointerUp;
            UILayerKey requiredTopLayer     = oldButton.requiredTopLayer;

            UnityEngine.Events.UnityEvent onFindSelectableLeft  = oldButton.onFindSelectableLeft;
            UnityEngine.Events.UnityEvent onFindSelectableRight = oldButton.onFindSelectableRight;
            UnityEngine.Events.UnityEvent onSelect   = oldButton.onSelect;
            UnityEngine.Events.UnityEvent onDeselect = oldButton.onDeselect;
            bool defaultFallbackButton = oldButton.defaultFallbackButton;

            Button.ButtonClickedEvent buttonClickedEvent = oldButton.onClick;
            ColorBlock colors              = oldButton.colors;
            bool       showImageOnHover    = oldButton.showImageOnHover;
            Image      imageOnHover        = oldButton.imageOnHover;
            Image      imageOnInteractable = oldButton.imageOnInteractable;
            bool       updateTextOnHover   = oldButton.updateTextOnHover;
            LanguageTextMeshController hoverLanguageTextMeshController = oldButton.hoverLanguageTextMeshController;
            string hoverToken           = oldButton.hoverToken;
            string uiClickSoundOverride = oldButton.uiClickSoundOverride;

            Object.DestroyImmediate(oldButton);

            colors.disabledColor = ModOptionsHeaderButton.GetComponent <HGButton>().colors.disabledColor;

            ModListButton newButton = ModListButton.AddComponent <ModListButton>();

            newButton.allowAllEventSystems  = allowAllEventSystems;
            newButton.submitOnPointerUp     = submitOnPointerUp;
            newButton.requiredTopLayer      = requiredTopLayer;
            newButton.onFindSelectableLeft  = onFindSelectableLeft;
            newButton.onFindSelectableRight = onFindSelectableRight;
            newButton.onSelect              = onSelect;
            newButton.onDeselect            = onDeselect;
            newButton.defaultFallbackButton = defaultFallbackButton;
            newButton.onClick                         = buttonClickedEvent;
            newButton.colors                          = colors;
            newButton.showImageOnHover                = showImageOnHover;
            newButton.imageOnHover                    = imageOnHover;
            newButton.imageOnInteractable             = imageOnInteractable;
            newButton.updateTextOnHover               = updateTextOnHover;
            newButton.hoverLanguageTextMeshController = hoverLanguageTextMeshController;
            newButton.hoverToken                      = hoverToken;
            newButton.uiClickSoundOverride            = uiClickSoundOverride;
            newButton.interactable                    = true;
            newButton.enabled                         = true;
            newButton.disablePointerClick             = false;
            newButton.onClick.RemoveAllListeners();

            RectTransform buttonTextRectTransform = ModListButton.transform.Find("ButtonText").GetComponent <RectTransform>();

            buttonTextRectTransform.anchorMin = new Vector2(0.19f, 0);
            buttonTextRectTransform.anchorMax = new Vector2(1, 1);

            GameObject modIconGameObject = new GameObject("ModIcon");

            RectTransform modIconRectTransform = modIconGameObject.AddComponent <RectTransform>();

            modIconGameObject.AddComponent <CanvasRenderer>();
            modIconGameObject.AddComponent <Image>().preserveAspect = true;
            modIconRectTransform.anchorMin = new Vector2(0.04f, 0.13f);
            modIconRectTransform.anchorMax = new Vector2(0.19f, 0.86f);
            modIconRectTransform.pivot     = new Vector2(0.5f, 0.5f);
            modIconGameObject.transform.SetParent(ModListButton.transform);


            GameObject    iconOutline = Object.Instantiate(ModListButton.transform.Find("BaseOutline").gameObject, modIconRectTransform);
            RectTransform iconOutlineRectTransform = iconOutline.GetComponent <RectTransform>();

            iconOutlineRectTransform.sizeDelta        = Vector2.zero;
            iconOutlineRectTransform.anchoredPosition = Vector2.zero;
            iconOutlineRectTransform.localScale       = new Vector3(0.94f, 1.16f, 1);

            ModListButton.SetActive(false);
        }