Esempio n. 1
0
        /**
         * <summary>Performs all calculations necessary to display the element.</summary>
         * <param name = "_slot">Ignored by this subclass</param>
         * <param name = "languageNumber">The index number of the language to display text in</param>
         * <param name = "isActive">If True, then the element will be drawn as though highlighted</param>
         */
        public override void PreDisplay(int _slot, int languageNumber, bool isActive)
        {
            isDefaultIcon = false;
            if (Application.isPlaying && KickStarter.stateHandler.gameState == GameState.Normal && KickStarter.settingsManager.interactionMethod == AC_InteractionMethod.ChooseInteractionThenHotspot && KickStarter.settingsManager.allowDefaultinteractions)
            {
                if (KickStarter.runtimeInventory.SelectedItem == null && KickStarter.playerInteraction.GetActiveHotspot() != null && KickStarter.playerInteraction.GetActiveHotspot().GetFirstUseIcon() == iconID)
                {
                    isActive      = true;
                    isDefaultIcon = true;
                }
            }

            if (uiButton != null)
            {
                UpdateUISelectable(uiButton, uiSelectableHideStyle);

                if (displayType != AC_DisplayType.IconOnly && uiText != null)
                {
                    uiText.text = label;
                }
                if (displayType == AC_DisplayType.IconOnly && uiImage != null && icon != null && icon.isAnimated)
                {
                    uiImage.sprite = icon.GetAnimatedSprite(isActive);
                }

                if (KickStarter.settingsManager.SelectInteractionMethod() == SelectInteractions.CyclingMenuAndClickingHotspot &&
                    iconID == KickStarter.playerInteraction.GetActiveUseButtonIconID())
                {
                    // Select through script, not by mouse-over
                    uiButton.Select();
                }
            }
        }
Esempio n. 2
0
        public override void PreDisplay(int _slot, int languageNumber, bool isActive)
        {
            isDefaultIcon = false;

            if (fixedIcon)
            {
                if (Application.isPlaying && KickStarter.stateHandler.IsInGameplay() && KickStarter.settingsManager.interactionMethod == AC_InteractionMethod.ChooseInteractionThenHotspot)
                {
                    if (KickStarter.settingsManager.allowDefaultinteractions &&
                        KickStarter.playerInteraction.GetActiveHotspot() != null &&
                        KickStarter.playerInteraction.GetActiveHotspot().GetFirstUseIcon() == iconID)
                    {
                        isActive      = true;
                        isDefaultIcon = true;
                    }
                    else if (KickStarter.settingsManager.allowDefaultInventoryInteractions &&
                             KickStarter.settingsManager.inventoryInteractions == InventoryInteractions.Multiple &&
                             KickStarter.settingsManager.CanSelectItems(false) &&
                             KickStarter.playerInteraction.GetActiveHotspot() == null &&
                             KickStarter.runtimeInventory.hoverItem != null &&
                             KickStarter.runtimeInventory.hoverItem.GetFirstStandardIcon() == iconID
                             )
                    {
                        isActive      = true;
                        isDefaultIcon = true;
                    }
                }

                if (uiButton != null)
                {
                    UpdateUISelectable(uiButton, uiSelectableHideStyle);

                    if (displayType != AC_DisplayType.IconOnly && uiText != null)
                    {
                        uiText.text = labels[0];
                    }
                    if (displayType == AC_DisplayType.IconOnly && uiImage != null && icon != null && icon.isAnimated)
                    {
                        uiImage.sprite = icon.GetAnimatedSprite(isActive);
                    }

                    if (KickStarter.settingsManager.SelectInteractionMethod() == SelectInteractions.CyclingMenuAndClickingHotspot &&
                        iconID == KickStarter.playerInteraction.GetActiveUseButtonIconID())
                    {
                        // Select through script, not by mouse-over
                        uiButton.Select();
                    }
                }
            }
            else
            {
                if (uiSlots != null && uiSlots.Length > _slot)
                {
                    LimitUISlotVisibility(uiSlots, numSlots, uiSelectableHideStyle);

                    CursorIcon cursorIcon = GetIconAtSlot(_slot);
                    if (cursorIcon != null)
                    {
                        if (displayType == AC_DisplayType.IconOnly || displayType == AC_DisplayType.IconAndText)
                        {
                            uiSlots[_slot].SetImageAsSprite(cursorIcon.GetAnimatedSprite(isActive));
                        }
                        if (displayType == AC_DisplayType.TextOnly || displayType == AC_DisplayType.IconAndText)
                        {
                            uiSlots[_slot].SetText(labels[_slot]);
                        }
                    }
                }
            }
        }