private static void UpdateLocalPlayerPda(INitroxPlayer player, PingInstance ping) { PDA localPlayerPda = Player.main.GetPDA(); GameObject pdaScreenGameObject = localPlayerPda.ui.gameObject; GameObject pingTabGameObject = pdaScreenGameObject.transform.Find("Content/PingManagerTab").gameObject; uGUI_PingTab pingTab = pingTabGameObject.GetComponent <uGUI_PingTab>(); MethodInfo updateEntities = typeof(uGUI_PingTab).GetMethod("UpdateEntries", BindingFlags.NonPublic | BindingFlags.Instance); updateEntities.Invoke(pingTab, new object[] { }); FieldInfo pingTabEntriesField = typeof(uGUI_PingTab).GetField("entries", BindingFlags.NonPublic | BindingFlags.Instance); Dictionary <int, uGUI_PingEntry> pingEntries = (Dictionary <int, uGUI_PingEntry>)pingTabEntriesField.GetValue(pingTab); uGUI_PingEntry pingEntry = pingEntries[ping.GetInstanceID()]; pingEntry.icon.color = player.PlayerSettings.PlayerColor.ToUnity(); GameObject pingEntryGameObject = pingEntry.gameObject; pingEntryGameObject.transform.Find("ColorToggle").gameObject.SetActive(false); if (!localPlayerPda.isInUse) { pdaScreenGameObject.gameObject.SetActive(false); } }
private static bool Prefix(uGUI_PingEntry __instance, int id, bool visible, PingType type, string name, ref int colorIndex) { CustomPings.Initialize(); __instance.gameObject.SetActive(true); uGUI_PingEntry_id.SetValue(__instance, id); __instance.visibility.isOn = visible; __instance.visibilityIcon.sprite = ((!visible) ? __instance.spriteHidden : __instance.spriteVisible); __instance.UpdateLabel(type, name); for (int i = 0; i < 5; ++i) { Toggle toggle = __instance.colorSelectors[i]; toggle.onValueChanged.RemoveAllListeners(); toggle.isOn = false; toggle.gameObject.SetActive(false); } __instance.colorSelectionIndicator.gameObject.SetActive(false); var controller = __instance.gameObject.GetComponent <PingEntryController>(); if (controller == null) { controller = __instance.gameObject.AddComponent <PingEntryController>(); } controller.OnInitialize(id, type, colorIndex); __instance.icon.sprite = SpriteManager.Get(SpriteManager.Group.Pings, PingManager.sCachedPingTypeStrings.Get(type)); __instance.icon.color = CustomPings.GetColor(colorIndex); return(false); }
private static bool Prefix(uGUI_PingEntry __instance, PingType type, string name) { string text = Language.main.Get(PingManager.sCachedPingTypeTranslationStrings.Get(type)); if (!string.IsNullOrEmpty(name)) { text = string.Format("{1} ({0})", text, name); } __instance.label.text = text; return(false); }
private static void UpdateLocalPlayerPda(INitroxPlayer player, PingInstance ping) { PDA localPlayerPda = Player.main.GetPDA(); GameObject pdaScreenGameObject = localPlayerPda.ui.gameObject; GameObject pingTabGameObject = pdaScreenGameObject.transform.Find("Content/PingManagerTab").gameObject; uGUI_PingTab pingTab = pingTabGameObject.GetComponent <uGUI_PingTab>(); pingTab.UpdateEntries(); Dictionary <int, uGUI_PingEntry> pingEntries = pingTab.entries; uGUI_PingEntry pingEntry = pingEntries[ping.GetInstanceID()]; pingEntry.icon.color = player.PlayerSettings.PlayerColor.ToUnity(); GameObject pingEntryGameObject = pingEntry.gameObject; pingEntryGameObject.transform.Find("ColorToggle").gameObject.SetActive(false); if (!localPlayerPda.isInUse) { pdaScreenGameObject.gameObject.SetActive(false); } }
static bool _allowedToChange(uGUI_PingEntry entry) => entry.visibility.interactable;