コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
 static bool _allowedToChange(uGUI_PingEntry entry) => entry.visibility.interactable;