示例#1
0
    public void RefreshCopyBuildingButton(object data = null)
    {
        MultiToggle component = copyBuildingButton.GetComponent <MultiToggle>();
        KSelectable selected  = SelectTool.Instance.selected;

        if ((UnityEngine.Object)selected == (UnityEngine.Object)null)
        {
            component.gameObject.SetActive(false);
            component.ChangeState(0);
        }
        else
        {
            Building component2 = SelectTool.Instance.selected.GetComponent <Building>();
            if ((UnityEngine.Object)component2 != (UnityEngine.Object)null && component2.Def.ShowInBuildMenu && !component2.Def.Deprecated)
            {
                Tuple <Sprite, Color> uISprite = Def.GetUISprite(component2.gameObject, "ui", false);
                component.gameObject.SetActive(true);
                component.transform.Find("FG").GetComponent <Image>().sprite = uISprite.first;
                component.transform.Find("FG").GetComponent <Image>().color  = Color.white;
                component.ChangeState(1);
            }
            else
            {
                component.gameObject.SetActive(false);
                component.ChangeState(0);
            }
        }
    }
示例#2
0
        public void PopulateMenu(Dictionary <string, ToolParameterMenu.ToggleState> inputParameters)
        {
            ClearMenu();
            this.parameters = new Dictionary <string, ToolParameterMenu.ToggleState>(inputParameters);

            foreach (KeyValuePair <string, ToolParameterMenu.ToggleState> parameter in inputParameters)
            {
                GameObject widetPrefab = Util.KInstantiateUI(ToolMenu.Instance.toolParameterMenu.widgetPrefab, widgetContainer, true);
                widetPrefab.GetComponentInChildren <LocText>().text = Strings.Get("STRINGS.UI.TOOLS.FILTERLAYERS." + parameter.Key);

                MultiToggle toggle = widetPrefab.GetComponentInChildren <MultiToggle>();
                switch (parameter.Value)
                {
                case ToolParameterMenu.ToggleState.On:
                    toggle.ChangeState(1);
                    break;

                case ToolParameterMenu.ToggleState.Disabled:
                    toggle.ChangeState(2);
                    break;

                default:
                    toggle.ChangeState(0);
                    break;
                }

                toggle.onClick += () => {
                    foreach (KeyValuePair <string, GameObject> widget in widgets)
                    {
                        if (widget.Value == toggle.transform.parent.gameObject)
                        {
                            if (this.parameters[widget.Key] == ToolParameterMenu.ToggleState.Disabled)
                            {
                                break;
                            }

                            if (this.parameters[widget.Key] == ToolParameterMenu.ToggleState.On)
                            {
                                this.parameters[widget.Key] = ToolParameterMenu.ToggleState.Off;
                            }

                            else
                            {
                                this.parameters[widget.Key] = ToolParameterMenu.ToggleState.On;
                            }

                            OnChange();
                            break;
                        }
                    }
                };

                widgets.Add(parameter.Key, widetPrefab);
            }

            content.SetActive(true);
        }
示例#3
0
    public override void SetTarget(GameObject target)
    {
        base.SetTarget(target);
        EggIncubator incubator = target.GetComponent <EggIncubator>();

        continuousToggle.ChangeState((!incubator.autoReplaceEntity) ? 1 : 0);
        continuousToggle.onClick = delegate
        {
            incubator.autoReplaceEntity = !incubator.autoReplaceEntity;
            continuousToggle.ChangeState((!incubator.autoReplaceEntity) ? 1 : 0);
        };
    }
        /// <summary>
        /// Refreshes the current Duplicant's allowed or disallowed state.
        /// </summary>
        public void Refresh()
        {
            bool allowed;

            if (toggle != null && targetIdentity != null && !targetIdentity.IsNull())
            {
                // If a true Duplicant, use their profile, otherwise the "public" profile
                if (targetIdentity is MinionAssignablesProxy trueDupe)
                {
                    allowed = sideScreen.profile.IsAllowed(trueDupe.TargetInstanceID);
                }
                else
                {
                    allowed = sideScreen.profile.IsPublicAllowed();
                }
                if (allowed)
                {
                    currentState    = AllowableState.Allowed;
                    assignment.text = STRINGS.UI.UISIDESCREENS.ASSIGNABLESIDESCREEN.ASSIGNED;
                }
                else
                {
                    currentState    = AllowableState.Disallowed;
                    assignment.text = STRINGS.UI.UISIDESCREENS.ASSIGNABLESIDESCREEN.UNASSIGNED;
                }
                toggle.ChangeState((int)currentState);
            }
        }
    public void SetFailed()
    {
        MultiToggle component = GetComponent <MultiToggle>();

        component.ChangeState(2);
        HierarchyReferences component2 = GetComponent <HierarchyReferences>();

        component2.GetReference <Image>("iconBG").color = color_dark_grey;
        component2.GetReference <Image>("iconBG").SetAlpha(0.5f);
        component2.GetReference <Image>("iconBorder").color = color_grey;
        component2.GetReference <Image>("iconBorder").SetAlpha(0.5f);
        component2.GetReference <Image>("icon").color = color_grey;
        component2.GetReference <Image>("icon").SetAlpha(0.5f);
        LocText[] componentsInChildren = GetComponentsInChildren <LocText>();
        foreach (LocText locText in componentsInChildren)
        {
            LocText locText2 = locText;
            Color   color    = locText.color;
            float   r        = color.r;
            Color   color2   = locText.color;
            float   g        = color2.g;
            Color   color3   = locText.color;
            locText2.color = new Color(r, g, color3.b, 0.25f);
        }
        ConfigureToolTip(GetComponent <ToolTip>(), COLONY_ACHIEVEMENTS.FAILED_THIS_COLONY);
    }
示例#6
0
    private void ToggleCategoryOpen(GameObject header, bool open)
    {
        MultiToggle reference = header.GetComponent <HierarchyReferences>().GetReference <MultiToggle>("ExpandToggle");

        reference.ChangeState(open ? 1 : 0);
        header.GetComponent <HierarchyReferences>().GetReference("Content").gameObject.SetActive(open);
    }
    public override void Refresh()
    {
        SettingLevel currentQualitySetting = CustomGameSettings.Instance.GetCurrentQualitySetting(config);

        Toggle.ChangeState(config.IsOnLevel(currentQualitySetting.id) ? 1 : 0);
        ToggleToolTip.toolTip = currentQualitySetting.tooltip;
    }
    private void OnToggleClicked(MultiToggle toggle, Label mod)
    {
        Manager modManager = Global.Instance.modManager;
        bool    flag       = modManager.IsModEnabled(mod);

        flag = !flag;
        toggle.ChangeState(flag ? 1 : 0);
        modManager.EnableMod(mod, flag, this);
    }
示例#9
0
    private void RefreshAlarmButton()
    {
        MultiToggle reference = optionsPanel.GetComponent <HierarchyReferences>().GetReference <MultiToggle>("AlarmButton");

        reference.ChangeState(schedule.alarmActivated ? 1 : 0);
        ToolTip component = reference.GetComponent <ToolTip>();

        component.SetSimpleTooltip((!schedule.alarmActivated) ? UI.SCHEDULESCREEN.ALARM_BUTTON_OFF_TOOLTIP : UI.SCHEDULESCREEN.ALARM_BUTTON_ON_TOOLTIP);
        ToolTipScreen.Instance.MarkTooltipDirty(component);
        alarmField.text = ((!schedule.alarmActivated) ? UI.SCHEDULESCREEN.ALARM_TITLE_DISABLED : UI.SCHEDULESCREEN.ALARM_TITLE_ENABLED);
    }
示例#10
0
    protected override void OnSpawn()
    {
        base.OnSpawn();
        if ((UnityEngine.Object)BuildingGroupScreen.Instance != (UnityEngine.Object)null)
        {
            BuildingGroupScreen instance = BuildingGroupScreen.Instance;
            instance.pointerEnterActions = (PointerEnterActions)Delegate.Combine(instance.pointerEnterActions, new PointerEnterActions(CheckMouseOver));
            BuildingGroupScreen instance2 = BuildingGroupScreen.Instance;
            instance2.pointerExitActions = (PointerExitActions)Delegate.Combine(instance2.pointerExitActions, new PointerExitActions(CheckMouseOver));
        }
        if ((UnityEngine.Object)PlanScreen.Instance != (UnityEngine.Object)null)
        {
            PlanScreen instance3 = PlanScreen.Instance;
            instance3.pointerEnterActions = (PointerEnterActions)Delegate.Combine(instance3.pointerEnterActions, new PointerEnterActions(CheckMouseOver));
            PlanScreen instance4 = PlanScreen.Instance;
            instance4.pointerExitActions = (PointerExitActions)Delegate.Combine(instance4.pointerExitActions, new PointerExitActions(CheckMouseOver));
        }
        if ((UnityEngine.Object)BuildMenu.Instance != (UnityEngine.Object)null)
        {
            BuildMenu instance5 = BuildMenu.Instance;
            instance5.pointerEnterActions = (PointerEnterActions)Delegate.Combine(instance5.pointerEnterActions, new PointerEnterActions(CheckMouseOver));
            BuildMenu instance6 = BuildMenu.Instance;
            instance6.pointerExitActions = (PointerExitActions)Delegate.Combine(instance6.pointerExitActions, new PointerExitActions(CheckMouseOver));
        }
        pointerEnterActions = (PointerEnterActions)Delegate.Combine(pointerEnterActions, new PointerEnterActions(CheckMouseOver));
        pointerExitActions  = (PointerExitActions)Delegate.Combine(pointerExitActions, new PointerExitActions(CheckMouseOver));
        ConsumeMouseScroll  = true;
        sandboxInstantBuildToggle.ChangeState(SandboxToolParameterMenu.instance.settings.InstantBuild ? 1 : 0);
        MultiToggle multiToggle = sandboxInstantBuildToggle;

        multiToggle.onClick = (System.Action)Delegate.Combine(multiToggle.onClick, (System.Action) delegate
        {
            SandboxToolParameterMenu.instance.settings.InstantBuild = !SandboxToolParameterMenu.instance.settings.InstantBuild;
            sandboxInstantBuildToggle.ChangeState(SandboxToolParameterMenu.instance.settings.InstantBuild ? 1 : 0);
        });
        sandboxInstantBuildToggle.gameObject.SetActive(Game.Instance.SandboxModeActive);
        Game.Instance.Subscribe(-1948169901, delegate
        {
            sandboxInstantBuildToggle.gameObject.SetActive(Game.Instance.SandboxModeActive);
        });
    }
示例#11
0
    protected override void OnSpawn()
    {
        base.OnSpawn();
        title.SetText(UI.FRONTEND.GRAPHICS_OPTIONS_SCREEN.TITLE);
        originalSettings           = CaptureSettings();
        applyButton.isInteractable = false;
        applyButton.onClick       += OnApply;
        applyButton.GetComponentInChildren <LocText>().SetText(UI.FRONTEND.GRAPHICS_OPTIONS_SCREEN.APPLYBUTTON);
        doneButton.onClick  += OnDone;
        closeButton.onClick += OnDone;
        doneButton.GetComponentInChildren <LocText>().SetText(UI.FRONTEND.GRAPHICS_OPTIONS_SCREEN.DONE_BUTTON);
        resolutionDropdown.ClearOptions();
        BuildOptions();
        resolutionDropdown.options = options;
        resolutionDropdown.onValueChanged.AddListener(OnResolutionChanged);
        fullscreenToggle.ChangeState(Screen.fullScreen ? 1 : 0);
        MultiToggle multiToggle = fullscreenToggle;

        multiToggle.onClick = (System.Action)Delegate.Combine(multiToggle.onClick, new System.Action(OnFullscreenToggle));
        fullscreenToggle.GetComponentInChildren <LocText>().SetText(UI.FRONTEND.GRAPHICS_OPTIONS_SCREEN.FULLSCREEN);
        resolutionDropdown.transform.parent.GetComponentInChildren <LocText>().SetText(UI.FRONTEND.GRAPHICS_OPTIONS_SCREEN.RESOLUTION);
        if (fullscreenToggle.CurrentState == 1)
        {
            int resolutionIndex = GetResolutionIndex(originalSettings.resolution);
            if (resolutionIndex != -1)
            {
                resolutionDropdown.value = resolutionIndex;
            }
        }
        CanvasScalers = UnityEngine.Object.FindObjectsOfType <KCanvasScaler>();
        UpdateSliderLabel();
        uiScaleSlider.onValueChanged.AddListener(delegate
        {
            sliderLabel.text = uiScaleSlider.value + "%";
        });
        uiScaleSlider.onReleaseHandle += delegate
        {
            UpdateUIScale(uiScaleSlider.value);
        };
    }
示例#12
0
    protected override void OnActivate()
    {
        closeButton.onClick       += OnClickClose;
        nextMessageButton.onClick += OnClickNextMessage;
        MultiToggle multiToggle = dontShowAgainButton;

        multiToggle.onClick = (System.Action)Delegate.Combine(multiToggle.onClick, new System.Action(OnClickDontShowAgain));
        bool flag = KPlayerPrefs.GetInt("HideTutorial_CheckState", 0) == 1;

        dontShowAgainButton.ChangeState((!flag) ? 1 : 0);
        Subscribe(Messenger.Instance.gameObject, -599791736, OnMessagesChanged);
        OnMessagesChanged(null);
    }
示例#13
0
 public override void SetTarget(GameObject target)
 {
     Components.LiveMinionIdentities.OnAdd    += OnMinionIdentitiesChanged;
     Components.LiveMinionIdentities.OnRemove += OnMinionIdentitiesChanged;
     if (targetAssignableSubscriptionHandle != -1 && (UnityEngine.Object)targetAssignable != (UnityEngine.Object)null)
     {
         targetAssignable.Unsubscribe(targetAssignableSubscriptionHandle);
     }
     targetAssignable = target.GetComponent <Assignable>();
     if ((UnityEngine.Object)targetAssignable == (UnityEngine.Object)null)
     {
         Debug.LogError($"{target.GetProperName()} selected has no Assignable component.");
     }
     else
     {
         if (rowPool == null)
         {
             rowPool = new UIPool <AssignableSideScreenRow>(rowPrefab);
         }
         base.gameObject.SetActive(true);
         identityList = new List <MinionAssignablesProxy>(Components.MinionAssignablesProxy.Items);
         dupeSortingToggle.ChangeState(0);
         generalSortingToggle.ChangeState(0);
         activeSortToggle   = null;
         activeSortFunction = null;
         if (!targetAssignable.CanBeAssigned)
         {
             HideScreen(true);
         }
         else
         {
             HideScreen(false);
         }
         targetAssignableSubscriptionHandle = targetAssignable.Subscribe(684616645, OnAssigneeChanged);
         Refresh(identityList);
         SortByAssignment(false);
     }
 }
示例#14
0
 /// <summary>
 /// Updates the visuals on the side screen when the list is sorted.
 /// </summary>
 /// <param name="toggle">The sorting option that was chosen.</param>
 /// <param name="reselect">true to allow reversing if that option was already the
 /// current sorting mode, or false to never reverse.</param>
 private void SelectSortToggle(MultiToggle toggle, bool reselect)
 {
     dupeSortingToggle.ChangeState(0);
     generalSortingToggle.ChangeState(0);
     if (toggle != null)
     {
         if (reselect && activeSortToggle == toggle)
         {
             sortReversed = !sortReversed;
         }
         activeSortToggle = toggle;
     }
     activeSortToggle.ChangeState(sortReversed ? 2 : 1);
 }
示例#15
0
 private void SelectSortToggle(MultiToggle toggle, bool reselect)
 {
     dupeSortingToggle.ChangeState(0);
     generalSortingToggle.ChangeState(0);
     if ((UnityEngine.Object)toggle != (UnityEngine.Object)null)
     {
         if (reselect && (UnityEngine.Object)activeSortToggle == (UnityEngine.Object)toggle)
         {
             sortReversed = !sortReversed;
         }
         activeSortToggle = toggle;
     }
     activeSortToggle.ChangeState((!sortReversed) ? 1 : 2);
 }
示例#16
0
 public void Refresh(object data = null)
 {
     if (!sideScreen.targetAssignable.CanAssignTo(targetIdentity))
     {
         currentState        = AssignableState.Disabled;
         assignmentText.text = UI.UISIDESCREENS.ASSIGNABLESIDESCREEN.DISABLED;
     }
     else if (sideScreen.targetAssignable.assignee == targetIdentity)
     {
         currentState        = AssignableState.Selected;
         assignmentText.text = UI.UISIDESCREENS.ASSIGNABLESIDESCREEN.ASSIGNED;
     }
     else
     {
         bool           flag           = false;
         KMonoBehaviour kMonoBehaviour = targetIdentity as KMonoBehaviour;
         if ((UnityEngine.Object)kMonoBehaviour != (UnityEngine.Object)null)
         {
             Ownables component = kMonoBehaviour.GetComponent <Ownables>();
             if ((UnityEngine.Object)component != (UnityEngine.Object)null)
             {
                 AssignableSlotInstance slot = component.GetSlot(sideScreen.targetAssignable.slot);
                 if (slot != null && slot.IsAssigned())
                 {
                     currentState        = AssignableState.AssignedToOther;
                     assignmentText.text = slot.assignable.GetProperName();
                     flag = true;
                 }
             }
             Equipment component2 = kMonoBehaviour.GetComponent <Equipment>();
             if ((UnityEngine.Object)component2 != (UnityEngine.Object)null)
             {
                 AssignableSlotInstance slot2 = component2.GetSlot(sideScreen.targetAssignable.slot);
                 if (slot2 != null && slot2.IsAssigned())
                 {
                     currentState        = AssignableState.AssignedToOther;
                     assignmentText.text = slot2.assignable.GetProperName();
                     flag = true;
                 }
             }
         }
         if (!flag)
         {
             currentState        = AssignableState.Unassigned;
             assignmentText.text = UI.UISIDESCREENS.ASSIGNABLESIDESCREEN.UNASSIGNED;
         }
     }
     toggle.ChangeState((int)currentState);
 }
示例#17
0
 private void SelectSortToggle(MultiToggle toggle)
 {
     dupeSortingToggle.ChangeState(0);
     experienceSortingToggle.ChangeState(0);
     moraleSortingToggle.ChangeState(0);
     if ((UnityEngine.Object)toggle != (UnityEngine.Object)null)
     {
         if ((UnityEngine.Object)activeSortToggle == (UnityEngine.Object)toggle)
         {
             sortReversed = !sortReversed;
         }
         activeSortToggle = toggle;
     }
     activeSortToggle.ChangeState((!sortReversed) ? 1 : 2);
 }
示例#18
0
    private void SetRow(int idx, string name, Sprite icon, LaunchConditionManager target)
    {
        GameObject          gameObject = (idx >= rowContainer.childCount) ? Util.KInstantiateUI(rowPrefab, rowContainer.gameObject, true) : rowContainer.GetChild(idx).gameObject;
        HierarchyReferences component  = gameObject.GetComponent <HierarchyReferences>();

        component.GetReference <LocText>("label").text = name;
        component.GetReference <Image>("icon").sprite  = icon;
        MultiToggle component2 = gameObject.GetComponent <MultiToggle>();

        component2.ChangeState(((Object)detector.GetTargetCraft() == (Object)target) ? 1 : 0);
        component2.onClick = delegate
        {
            detector.SetTargetCraft(target);
            RefreshOptions();
        };
    }
    public void SetAchievedNow()
    {
        MultiToggle component = GetComponent <MultiToggle>();

        component.ChangeState(1);
        HierarchyReferences component2 = GetComponent <HierarchyReferences>();

        component2.GetReference <Image>("iconBG").color     = color_dark_red;
        component2.GetReference <Image>("iconBorder").color = color_gold;
        component2.GetReference <Image>("icon").color       = color_gold;
        LocText[] componentsInChildren = GetComponentsInChildren <LocText>();
        foreach (LocText locText in componentsInChildren)
        {
            locText.color = Color.white;
        }
        ConfigureToolTip(GetComponent <ToolTip>(), COLONY_ACHIEVEMENTS.ACHIEVED_THIS_COLONY_TOOLTIP);
    }
示例#20
0
        private void SetRow(int idx, string name, Sprite icon, LaunchConditionManager target)
        {
            GameObject          gameObject = idx >= this.rowContainer.childCount ? Util.KInstantiateUI(this.rowPrefab, this.rowContainer.gameObject, true) : this.rowContainer.GetChild(idx).gameObject;
            HierarchyReferences component1 = gameObject.GetComponent <HierarchyReferences>();

            component1.GetReference <LocText>("label").text      = name;
            component1.GetReference <Image>(nameof(icon)).sprite = icon;
            MultiToggle component2 = gameObject.GetComponent <MultiToggle>();

            component2.ChangeState((UnityEngine.Object) this.detector.GetTargetCraft() == (UnityEngine.Object)target ? 1 : 0);
            LaunchConditionManager _target = target;

            component2.onClick = (System.Action)(() =>
            {
                this.detector.SetTargetCraft(_target);
                this.RefreshOptions();
            });
        }
示例#21
0
 public void SetToggle(bool on)
 {
     toggle.ChangeState(on ? 1 : 0);
 }
    private void on_load_consumable_info(IAssignableIdentity minion, GameObject widget_go)
    {
        TableRow          widgetRow       = GetWidgetRow(widget_go);
        TableColumn       widgetColumn    = GetWidgetColumn(widget_go);
        IConsumableUIItem consumable_info = (widgetColumn as ConsumableInfoTableColumn).consumable_info;

        EdiblesManager.FoodInfo foodInfo  = consumable_info as EdiblesManager.FoodInfo;
        MultiToggle             component = widget_go.GetComponent <MultiToggle>();

        if (!widgetColumn.isRevealed)
        {
            widget_go.SetActive(false);
        }
        else
        {
            if (!widget_go.activeSelf)
            {
                widget_go.SetActive(true);
            }
            switch (widgetRow.rowType)
            {
            case TableRow.RowType.Header:
            {
                GameObject prefab = Assets.GetPrefab(consumable_info.ConsumableId.ToTag());
                if ((UnityEngine.Object)prefab == (UnityEngine.Object)null)
                {
                    return;
                }
                KBatchedAnimController component2 = prefab.GetComponent <KBatchedAnimController>();
                Image image2 = widget_go.GetComponent <HierarchyReferences>().GetReference("PortraitImage") as Image;
                if (component2.AnimFiles.Length > 0)
                {
                    Sprite sprite = image2.sprite = Def.GetUISpriteFromMultiObjectAnim(component2.AnimFiles[0], "ui", false, string.Empty);
                }
                image2.color    = Color.white;
                image2.material = ((!(WorldInventory.Instance.GetAmount(consumable_info.ConsumableId.ToTag()) > 0f)) ? Assets.UIPrefabs.TableScreenWidgets.DesaturatedUIMaterial : Assets.UIPrefabs.TableScreenWidgets.DefaultUIMaterial);
                break;
            }

            case TableRow.RowType.Default:
                switch (get_value_consumable_info(minion, widget_go))
                {
                case ResultValues.False:
                    component.ChangeState(0);
                    break;

                case ResultValues.True:
                    component.ChangeState(1);
                    break;

                case ResultValues.ConditionalGroup:
                    component.ChangeState(2);
                    break;
                }
                break;

            case TableRow.RowType.Minion:
            case TableRow.RowType.StoredMinon:
                switch (get_value_consumable_info(minion, widget_go))
                {
                case ResultValues.False:
                    component.ChangeState(0);
                    break;

                case ResultValues.True:
                    component.ChangeState(1);
                    break;

                case ResultValues.ConditionalGroup:
                    component.ChangeState(2);
                    break;
                }
                if (foodInfo != null && (UnityEngine.Object)(minion as MinionIdentity) != (UnityEngine.Object)null)
                {
                    Image image  = widget_go.GetComponent <HierarchyReferences>().GetReference("BGImage") as Image;
                    Color color2 = image.color = new Color(0.721568644f, 0.443137258f, 0.5803922f, Mathf.Max((float)foodInfo.Quality - Db.Get().Attributes.FoodExpectation.Lookup(minion as MinionIdentity).GetTotalValue() + 1f, 0f) * 0.25f);
                }
                break;
            }
            refresh_scrollers();
        }
    }
    private void SpawnCategoryRow(Tag categoryTag, GameUtil.MeasureUnit unit)
    {
        GameObject gameObject = null;

        if (!categoryRows.ContainsKey(categoryTag))
        {
            GameObject gameObject2 = Util.KInstantiateUI(categoryLinePrefab, rootListContainer, force_active: true);
            ((TMP_Text)gameObject2.GetComponent <HierarchyReferences>().GetReference <LocText>("NameLabel")).SetText(categoryTag.ProperNameStripLink());
            categoryRows.Add(categoryTag, gameObject2);
            currentlyDisplayedRows.Add(categoryTag, value: true);
            units.Add(categoryTag, unit);
            HierarchyReferences component = gameObject2.GetComponent <HierarchyReferences>();
            component.GetReference <SparkLayer>("Chart").GetComponent <GraphBase>().axis_x.min_value       = 0f;
            component.GetReference <SparkLayer>("Chart").GetComponent <GraphBase>().axis_x.max_value       = 600f;
            component.GetReference <SparkLayer>("Chart").GetComponent <GraphBase>().axis_x.guide_frequency = 120f;
            component.GetReference <SparkLayer>("Chart").GetComponent <GraphBase>().RefreshGuides();
        }
        gameObject = categoryRows[categoryTag].GetComponent <FoldOutPanel>().container;
        foreach (Tag item in DiscoveredResources.Instance.GetDiscoveredResourcesFromTag(categoryTag))
        {
            if (resourceRows.ContainsKey(item))
            {
                continue;
            }
            GameObject            gameObject3 = Util.KInstantiateUI(resourceLinePrefab, gameObject, force_active: true);
            HierarchyReferences   component2  = gameObject3.GetComponent <HierarchyReferences>();
            Tuple <Sprite, Color> uISprite    = Def.GetUISprite(item);
            component2.GetReference <Image>("Icon").set_sprite(uISprite.first);
            ((Graphic)component2.GetReference <Image>("Icon")).set_color(uISprite.second);
            ((TMP_Text)component2.GetReference <LocText>("NameLabel")).SetText(item.ProperNameStripLink());
            Tag         targetTag   = item;
            MultiToggle pinToggle   = component2.GetReference <MultiToggle>("PinToggle");
            MultiToggle multiToggle = pinToggle;
            multiToggle.onClick = (System.Action)Delegate.Combine(multiToggle.onClick, (System.Action) delegate
            {
                if (ClusterManager.Instance.activeWorld.worldInventory.pinnedResources.Contains(targetTag))
                {
                    ClusterManager.Instance.activeWorld.worldInventory.pinnedResources.Remove(targetTag);
                }
                else
                {
                    ClusterManager.Instance.activeWorld.worldInventory.pinnedResources.Add(targetTag);
                    if (DiscoveredResources.Instance.newDiscoveries.ContainsKey(targetTag))
                    {
                        DiscoveredResources.Instance.newDiscoveries.Remove(targetTag);
                    }
                }
                RefreshPinnedState(targetTag);
                pinToggle.ChangeState(ClusterManager.Instance.activeWorld.worldInventory.pinnedResources.Contains(targetTag) ? 1 : 0);
            });
            gameObject3.GetComponent <MultiToggle>().onClick = pinToggle.onClick;
            MultiToggle notifyToggle = component2.GetReference <MultiToggle>("NotificationToggle");
            MultiToggle multiToggle2 = notifyToggle;
            multiToggle2.onClick = (System.Action)Delegate.Combine(multiToggle2.onClick, (System.Action) delegate
            {
                if (ClusterManager.Instance.activeWorld.worldInventory.notifyResources.Contains(targetTag))
                {
                    ClusterManager.Instance.activeWorld.worldInventory.notifyResources.Remove(targetTag);
                }
                else
                {
                    ClusterManager.Instance.activeWorld.worldInventory.notifyResources.Add(targetTag);
                }
                RefreshPinnedState(targetTag);
                notifyToggle.ChangeState(ClusterManager.Instance.activeWorld.worldInventory.notifyResources.Contains(targetTag) ? 1 : 0);
            });
            component2.GetReference <SparkLayer>("Chart").GetComponent <GraphBase>().axis_x.min_value       = 0f;
            component2.GetReference <SparkLayer>("Chart").GetComponent <GraphBase>().axis_x.max_value       = 600f;
            component2.GetReference <SparkLayer>("Chart").GetComponent <GraphBase>().axis_x.guide_frequency = 120f;
            component2.GetReference <SparkLayer>("Chart").GetComponent <GraphBase>().RefreshGuides();
            resourceRows.Add(item, gameObject3);
            currentlyDisplayedRows.Add(item, value: true);
            if (units.ContainsKey(item))
            {
                Debug.LogError(string.Concat("Trying to add ", item.ToString(), ":UnitType ", units[item], " but units dictionary already has key ", item.ToString(), " with unit type:", unit));
            }
            else
            {
                units.Add(item, unit);
            }
        }
    }
示例#24
0
        protected override void OnPrefabInit()
        {
            base.OnPrefabInit();

            GameObject baseContent         = ToolMenu.Instance.toolParameterMenu.content;
            GameObject baseWidgetContainer = ToolMenu.Instance.toolParameterMenu.widgetContainer;

            content = Util.KInstantiateUI(baseContent, baseContent.transform.parent.gameObject);
            content.transform.GetChild(1).gameObject.SetActive(false);

            var buttonsPanel = new PRelativePanel {
                BackColor = PUITuning.Colors.ButtonPinkStyle.inactiveColor
            };

            var allButton = new PButton
            {
                Text    = "All",
                OnClick = (_) => SetAll(ToolParameterMenu.ToggleState.On)
            }.SetKleiPinkStyle();

            var noneButton = new PButton {
                Text = "None"
            };

            noneButton.OnClick += source => {
                Instance.SetAll(ToolParameterMenu.ToggleState.Off);
            };

            PCheckBox syncCheckBox = new PCheckBox {
                Text = "Auto. Sync"
            };

            syncCheckBox.SetKleiPinkStyle();
            syncCheckBox.OnRealize += realized => {
                syncMultiToggle = realized.GetComponent <MultiToggle>();
            };
            syncCheckBox.OnChecked += (source, state) => {
                if (state == PCheckBox.STATE_UNCHECKED)
                {
                    syncMultiToggle.ChangeState(PCheckBox.STATE_CHECKED);
                }

                else if (state == PCheckBox.STATE_CHECKED)
                {
                    syncMultiToggle.ChangeState(PCheckBox.STATE_UNCHECKED);
                }

                OnSyncChanged?.Invoke(syncMultiToggle.CurrentState == PCheckBox.STATE_CHECKED);
            };

            buttonsPanel.AddChild(allButton);
            buttonsPanel.SetLeftEdge(allButton, 0)
            .SetRightEdge(allButton, 0.25F);

            buttonsPanel.AddChild(noneButton);
            buttonsPanel.SetLeftEdge(noneButton, 0.25F)
            .SetRightEdge(noneButton, 0.5F);

            buttonsPanel.AddChild(syncCheckBox);
            buttonsPanel.SetLeftEdge(syncCheckBox, 0.5F)
            .SetRightEdge(syncCheckBox, 1F);

            widgetContainer = Util.KInstantiateUI(baseWidgetContainer, content, true);
            buttonsPanel.AddTo(content, 3);

            content.SetActive(false);
        }
    private void BuildDisplay()
    {
        foreach (DisplayedMod displayedMod in displayedMods)
        {
            DisplayedMod current = displayedMod;
            if ((UnityEngine.Object)current.rect_transform != (UnityEngine.Object)null)
            {
                UnityEngine.Object.Destroy(current.rect_transform.gameObject);
            }
        }
        displayedMods.Clear();
        ModOrderingDragListener listener = new ModOrderingDragListener(this, displayedMods);

        for (int i = 0; i != Global.Instance.modManager.mods.Count; i++)
        {
            Mod mod = Global.Instance.modManager.mods[i];
            if (mod.status != 0 && mod.status != Mod.Status.UninstallPending && mod.HasAnyContent(Content.LayerableFiles | Content.Strings | Content.DLL | Content.Animation))
            {
                HierarchyReferences hierarchyReferences = Util.KInstantiateUI <HierarchyReferences>(entryPrefab, entryParent.gameObject, false);
                displayedMods.Add(new DisplayedMod
                {
                    rect_transform = hierarchyReferences.gameObject.GetComponent <RectTransform>(),
                    mod_index      = i
                });
                DragMe component = hierarchyReferences.GetComponent <DragMe>();
                component.listener = listener;
                LocText reference = hierarchyReferences.GetReference <LocText>("Title");
                reference.text = mod.title;
                ToolTip reference2 = hierarchyReferences.GetReference <ToolTip>("Description");
                reference2.toolTip = mod.description;
                if (mod.crash_count != 0)
                {
                    reference.color = Color.Lerp(Color.white, Color.red, (float)mod.crash_count / 3f);
                }
                KButton reference3 = hierarchyReferences.GetReference <KButton>("ManageButton");
                reference3.isInteractable = mod.is_managed;
                if (reference3.isInteractable)
                {
                    reference3.GetComponent <ToolTip>().toolTip = mod.manage_tooltip;
                    reference3.onClick += mod.on_managed;
                }
                MultiToggle toggle = hierarchyReferences.GetReference <MultiToggle>("EnabledToggle");
                toggle.ChangeState(mod.enabled ? 1 : 0);
                MultiToggle multiToggle = toggle;
                multiToggle.onClick = (System.Action)Delegate.Combine(multiToggle.onClick, (System.Action) delegate
                {
                    OnToggleClicked(toggle, mod.label);
                });
                toggle.GetComponent <ToolTip>().OnToolTip = (() => (!mod.enabled) ? UI.FRONTEND.MODS.TOOLTIPS.DISABLED : UI.FRONTEND.MODS.TOOLTIPS.ENABLED);
                hierarchyReferences.gameObject.SetActive(true);
            }
        }
        foreach (DisplayedMod displayedMod2 in displayedMods)
        {
            DisplayedMod current2 = displayedMod2;
            current2.rect_transform.gameObject.SetActive(true);
        }
        if (displayedMods.Count != 0)
        {
            return;
        }
    }