void SelectReward(RewardItem _rewardData) { showSwatchesTween.Rewind(); bool isTextureOrDecal = currCategory == AnturaSpaceCategoryButton.AnturaSpaceCategory.Texture || currCategory == AnturaSpaceCategoryButton.AnturaSpaceCategory.Decal; BTRemoveMods.gameObject.SetActive(!isTextureOrDecal && _rewardData != null); if (_rewardData == null) { foreach (AnturaSpaceItemButton item in btsItems) { item.Toggle(false); } if (currCategory == AnturaSpaceCategoryButton.AnturaSpaceCategory.Ears) { AnturaModelManager.Instance.ClearLoadedRewardInCategory("EAR_L"); AnturaModelManager.Instance.ClearLoadedRewardInCategory("EAR_R"); } else { AnturaModelManager.Instance.ClearLoadedRewardInCategory(currCategory.ToString()); } return; } foreach (AnturaSpaceItemButton item in btsItems) { item.Toggle(item.Data == _rewardData); } currSwatchesDatas = RewardSystemManager.SelectRewardItem(_rewardData.ID, currRewardType); if (currSwatchesDatas.Count == 0) { Debug.Log("No color swatches for the selected reward!"); return; } // Hide non-existent swatches for (int i = currSwatchesDatas.Count - 1; i < btsSwatches.Length; ++i) { btsSwatches[i].gameObject.SetActive(false); } // Setup and show swatches RewardColorItem selectedSwatchData = null; for (int i = 0; i < currSwatchesDatas.Count; ++i) { RewardColorItem swatchData = currSwatchesDatas[i]; AnturaSpaceSwatchButton swatch = btsSwatches[i]; swatch.gameObject.SetActive(true); swatch.Data = swatchData; if (swatchData != null) { swatch.SetAsNew(swatchData.IsNew); swatch.Toggle(swatchData.IsSelected); swatch.SetColors(GenericUtilities.HexToColor(swatchData.Color1RGB), GenericUtilities.HexToColor(swatchData.Color2RGB)); if (swatchData.IsSelected) { selectedSwatchData = swatchData; } } else { swatch.Toggle(false); } swatch.Lock(swatchData == null); } SwatchesContainer.gameObject.SetActive(true); showSwatchesTween.PlayForward(); // Select eventual color if (selectedSwatchData != null) { SelectSwatch(selectedSwatchData); } }
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(); } }