void Start() { btsCategories = CategoriesContainer.GetComponentsInChildren <AnturaSpaceCategoryButton>(true); btsSwatches = SwatchesContainer.GetComponentsInChildren <AnturaSpaceSwatchButton>(true); SelectCategory(AnturaSpaceCategoryButton.AnturaSpaceCategory.Unset); // Create items rewardsContainers = new List <Transform>(); rewardsImagesContainers = new List <Transform>(); btsItems = new AnturaSpaceItemButton[MaxItems]; btsItems[0] = BtItemMain; rewardsContainers.Add(BtItemMain.RewardContainer); rewardsImagesContainers.Add(BtItemMain.RewardImage.transform); for (int i = 1; i < MaxItems; ++i) { AnturaSpaceItemButton item = Instantiate(BtItemMain); item.transform.SetParent(BtItemMain.transform.parent, false); item.Setup(); btsItems[i] = item; rewardsContainers.Add(item.RewardContainer); rewardsImagesContainers.Add(item.RewardImage.transform); } BtItemMain.Setup(); const float duration = 0.3f; showCategoriesTween = DOTween.Sequence().SetAutoKill(false).Pause() .Append(CategoriesContainer.DOAnchorPosY(150, duration).From().SetEase(Ease.OutBack)) .Join(BtBones.RectT.DOAnchorPosY(-830, duration)) .OnRewind(() => CategoriesContainer.gameObject.SetActive(false)); showItemsTween = ItemsContainer.DOAnchorPosX(-350, duration).From().SetEase(Ease.OutBack).SetAutoKill(false).Pause() .OnRewind(() => { ItemsContainer.gameObject.SetActive(false); // Clear items containers children foreach (Transform container in rewardsContainers) { foreach (Transform child in container) { Destroy(child.gameObject); } } }); showSwatchesTween = SwatchesContainer.DOAnchorPosY(-100, duration).From().SetEase(Ease.OutBack).SetAutoKill(false).Pause() .OnRewind(() => SwatchesContainer.gameObject.SetActive(false)); CategoriesContainer.gameObject.SetActive(false); ItemsContainer.gameObject.SetActive(false); SwatchesContainer.gameObject.SetActive(false); // Listeneres BtOpenModsPanel.Bt.onClick.AddListener(() => OnClick(BtOpenModsPanel)); BTRemoveMods.Bt.onClick.AddListener(() => OnClick(BTRemoveMods)); foreach (var bt in btsCategories) { var b = bt; b.Bt.onClick.AddListener(() => OnClickCategory(b)); } foreach (var bt in btsItems) { var b = bt; b.Bt.onClick.AddListener(() => OnClickItem(b)); } foreach (var bt in btsSwatches) { var b = bt; b.Bt.onClick.AddListener(() => OnClickSwatch(b)); } }
void OnClickItem(AnturaSpaceItemButton _bt) { SelectReward(_bt.Data); }
IEnumerator CO_SelectCategory(AnturaSpaceCategoryButton.AnturaSpaceCategory _category) { BTRemoveMods.gameObject.SetActive(false); // Get rewards list currCategory = _category; currRewardType = CategoryToRewardType(_category); bool useImages = _category == AnturaSpaceCategoryButton.AnturaSpaceCategory.Texture || _category == AnturaSpaceCategoryButton.AnturaSpaceCategory.Decal; foreach (AnturaSpaceItemButton item in btsItems) { item.SetImage(!useImages); } if (_category == AnturaSpaceCategoryButton.AnturaSpaceCategory.Ears) { currRewardDatas = RewardSystemManager.GetRewardItemsByRewardType(currRewardType, rewardsContainers, "EAR_L"); List <Transform> altRewardContainers = new List <Transform>(rewardsContainers); altRewardContainers.RemoveRange(0, currRewardDatas.Count); currRewardDatas.AddRange(RewardSystemManager.GetRewardItemsByRewardType(currRewardType, altRewardContainers, "EAR_R")); } else { currRewardDatas = RewardSystemManager.GetRewardItemsByRewardType(currRewardType, useImages ? rewardsImagesContainers : rewardsContainers, _category.ToString()); } yield return(null); // Hide non-existent items for (int i = currRewardDatas.Count - 1; i < btsItems.Length; ++i) { btsItems[i].gameObject.SetActive(false); } // Setup and show items RewardItem selectedRewardData = null; for (int i = 0; i < currRewardDatas.Count; ++i) { RewardItem rewardData = currRewardDatas[i]; AnturaSpaceItemButton item = btsItems[i]; item.gameObject.SetActive(true); item.Data = rewardData; if (rewardData != null) { if (!useImages) { item.RewardContainer.gameObject.SetLayerRecursive(GenericUtilities.LayerMaskToIndex(RewardsLayer)); CameraHelper.FitRewardToUICamera(item.RewardContainer.GetChild(0), item.RewardCamera, FlipRewards); } item.SetAsNew(rewardData.IsNew); item.Toggle(rewardData.IsSelected); if (rewardData.IsSelected) { selectedRewardData = rewardData; } } else { item.Toggle(false); } item.Lock(rewardData == null); } ItemsContainer.gameObject.SetActive(true); showItemsTween.PlayForward(); // Select eventual reward if (selectedRewardData != null) { SelectReward(selectedRewardData); } else { showSwatchesTween.Rewind(); } }