Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
 private void CreateTagSetHeaders(IEnumerable <Tag> set, GameUtil.MeasureUnit measure)
 {
     foreach (Tag item in set)
     {
         ResourceCategoryHeader value = NewCategoryHeader(item, measure);
         DisplayedCategories.Add(item, value);
     }
 }
Ejemplo n.º 3
0
    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);
    }
Ejemplo n.º 4
0
 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);
     }
 }
Ejemplo n.º 5
0
    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
            }
Ejemplo n.º 7
0
 public void SetTag(Tag t, GameUtil.MeasureUnit measure)
 {
     Resource = t;
     Measure  = measure;
 }
Ejemplo n.º 8
0
    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);
            }
        }
    }