private static string GetCurrentFilter(ItemNet net) { var netId = net.itemCollector.ObjectIndex; if (!m_netSetup.ContainsKey(netId)) { return(NetFilters.All); } return(m_netSetup[netId]); }
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)); }
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); }