Ejemplo n.º 1
0
    private static string GetCurrentFilter(ItemNet net)
    {
        var netId = net.itemCollector.ObjectIndex;

        if (!m_netSetup.ContainsKey(netId))
        {
            return(NetFilters.All);
        }

        return(m_netSetup[netId]);
    }
Ejemplo n.º 2
0
    private static void ToggleFilterModeForNet(ItemNet net)
    {
        uint netId = net.itemCollector.ObjectIndex;

        if (!m_netSetup.ContainsKey(netId))
        {
            m_netSetup.Add(netId, NetFilters.All);
        }

        string currentFilterMode = m_netSetup[netId];
        string nextFilterMode    = NetFilters.Next(currentFilterMode);

        SetNetFilter(netId, nextFilterMode);
        MessageHandler.SendMessage(
            new MessageItemNetFilterChanged(
                (Messages)MessageHandler.FilteredNetsMessages.FilterChanged, netId, nextFilterMode));
    }
Ejemplo n.º 3
0
        private static bool Prefix
        (
            // ReSharper disable InconsistentNaming
            ItemNet __instance,
            CanvasHelper ___canvas,
            ref bool ___displayText)
        // ReSharper restore InconsistentNaming
        {
            // This overrides the original logic.
            // If the internal logic is changed in the future, this has to change aswell.
            if (!Helper.LocalPlayerIsWithinDistance(
                    __instance.transform.position, Player.UseDistance))
            {
                // Not within use distance, run old logic
                return(true);
            }

            if (MyInput.GetButtonDown("Rotate"))
            {
                ToggleFilterModeForNet(__instance);
            }

            ___displayText = true;
            var toggleFilterText = string.Format("Toggle net filter ({0})", GetCurrentFilter(__instance));

            if (__instance.itemCollector.collectedItems.Count > 0)
            {
                ___canvas.displayTextManager.HideDisplayTexts();

                LocalizationParameters.itemCount = __instance.itemCollector.collectedItems.Count;

                ___canvas.displayTextManager.ShowText(
                    toggleFilterText, MyInput.Keybinds["Rotate"].MainKey, 1,
                    Helper.GetTerm("Game/CollectItemCount", true), MyInput.Keybinds["Interact"].MainKey, 2);
            }
            else
            {
                ___canvas.displayTextManager.ShowText(
                    toggleFilterText, MyInput.Keybinds["Rotate"].MainKey, 1);
            }

            // skip original logic
            return(false);
        }