private ResourceEntry NewResourceEntry(Tag resourceTag, GameUtil.MeasureUnit measure) { GameObject gameObject = Util.KInstantiateUI(Prefab_ResourceEntry, EntryContainer.gameObject, true); ResourceEntry component = gameObject.GetComponent <ResourceEntry>(); component.SetTag(resourceTag, measure); return(component); }
private void CreateTagSetHeaders(IEnumerable <Tag> set, GameUtil.MeasureUnit measure) { foreach (Tag item in set) { ResourceCategoryHeader value = NewCategoryHeader(item, measure); DisplayedCategories.Add(item, value); } }
private ResourceCategoryHeader NewCategoryHeader(Tag categoryTag, GameUtil.MeasureUnit measure) { GameObject gameObject = Util.KInstantiateUI(Prefab_CategoryBar, CategoryContainer.gameObject, false); gameObject.name = "CategoryHeader_" + categoryTag.Name; ResourceCategoryHeader component = gameObject.GetComponent <ResourceCategoryHeader>(); component.SetTag(categoryTag, measure); return(component); }
public void SetTag(Tag t, GameUtil.MeasureUnit measure) { ResourceCategoryTag = t; Measure = measure; elements.LabelText.text = t.ProperName(); if (SaveGame.Instance.expandedResourceTags.Contains(ResourceCategoryTag)) { anyDiscovered = true; ToggleOpen(false); } }
public static string QuantityTextForMeasure(float quantity, GameUtil.MeasureUnit measure) { switch (measure) { case GameUtil.MeasureUnit.mass: return(GameUtil.GetFormattedMass(quantity, GameUtil.TimeSlice.None, GameUtil.MetricMassFormat.UseThreshold, true, "{0:0.#}")); case GameUtil.MeasureUnit.kcal: return(GameUtil.GetFormattedCalories(quantity, GameUtil.TimeSlice.None, true)); default: return(quantity.ToString()); } }
public static bool Prefix(ref ResourceEntry __instance) { var cont = true; // check active modifiers var check = (Modifier)Traverse.Create(Global.Instance.GetInputManager().GetDefaultController()).Field("mActiveModifiers").GetValue(); if (check == Modifier.Shift) { cont = false; // don't execute original OnClick Tag tag = (Tag)__instance.Resource; if (favoritesCategoryHeader != null) { ResourceEntry resourceEntry = null; HashSet <Tag> hashSet = null; hashSet = WorldInventory.Instance.GetDiscoveredResourcesFromTag(favoritesCategoryHeader.ResourceCategoryTag); if (hashSet.Contains(tag)) { //Debug.Log("Toggle: Off"); // NOTE: removes resource tracking in Favorites category but still displays the button hashSet.Remove(tag); favoritesCategoryHeader.ResourcesDiscovered.TryGetValue(tag, out resourceEntry); if (resourceEntry != null) { favoritesCategoryHeader.ResourcesDiscovered.Remove(tag); resourceEntry.DeleteObject(); //resourceEntry.gameObject.SetActive(false); } } else { //Debug.Log("Toggle: On"); // Activate the ResourceEntry var discoverCat = Traverse.Create(WorldInventory.Instance).Method("DiscoverCategory", new[] { typeof(Tag), typeof(Tag) }); discoverCat.GetValue(favoritesCategoryHeader.ResourceCategoryTag, tag); if (!favoritesCategoryHeader.ResourcesDiscovered.TryGetValue(tag, out resourceEntry)) { List <Tag> ts = WorldInventory.Instance.GetPickupableTagsFromCategoryTag(tag); HashSet <Tag> tags = new HashSet <Tag>(ts); Tag cat = WorldInventory.GetCategoryForTags(tags); //Debug.Log("[Favorites] <ResourceEntry_OnClick> cat: " + cat); GameUtil.MeasureUnit measure = GameUtil.MeasureUnit.mass; if (GameTags.CalorieCategories.Contains(cat)) { measure = GameUtil.MeasureUnit.kcal; } if (GameTags.UnitCategories.Contains(cat)) { measure = GameUtil.MeasureUnit.quantity; } //Debug.Log("[Favorites] <ResourceEntry_OnClick> measure: " + measure); var newResourceEntry = Traverse.Create(favoritesCategoryHeader).Method("NewResourceEntry", new[] { typeof(Tag), typeof(GameUtil.MeasureUnit) }); resourceEntry = newResourceEntry.GetValue <ResourceEntry>(tag, measure); favoritesCategoryHeader.ResourcesDiscovered.Add(tag, resourceEntry); } if (resourceEntry != null) // NOTE: might no longer need this { resourceEntry.gameObject.SetActive(true); } } } } return(cont); // if true: execute original OnClick }
public void SetTag(Tag t, GameUtil.MeasureUnit measure) { Resource = t; Measure = measure; }
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); } } }