public static void ForceUpdate() { Players.Clear(); AllPlayerEntities.Clear(); PlayerHands.Clear(); bool search = false; if (PlayerHands.ContainsValue(null) || PlayerHands.Count != Scene.SceneTracker.allPlayers.Count || PlayerHands.Count == 0) { PlayerHands.Clear(); search = true; } for (int i = 0; i < Scene.SceneTracker.allPlayers.Count; i++) { Players.Add(Scene.SceneTracker.allPlayers[i]); if (!ModSettings.IsDedicated) { if (Scene.SceneTracker.allPlayers[i].transform.root == LocalPlayer.Transform.root) { ThisPlayerID = i; } } BoltEntity b = Scene.SceneTracker.allPlayers[i].GetComponent <BoltEntity>(); if (b != null) { AllPlayerEntities.Add(b); try { if (UnityEngine.Input.GetKey(KeyCode.F8)) { Debug.LogWarning("PLAYER " + b.transform.root.name); ModAPI.Log.Write("PLAYER " + "\n\n" + ModReferences.ListAllChildren(b.transform.root, "")); } } catch (Exception exc) { Debug.LogWarning(exc.ToString()); } if (search) { Transform hand = FindHandRetardedWay(b.transform.root); if (hand != null) { PlayerHands.Add(b.networkId.PackedValue, hand); Debug.Log("FOUND HAND TRANSFORM for player " + b.networkId.PackedValue); } else { Debug.LogWarning("Couldnt find hand for player " + b.networkId.PackedValue); } } } } if (!ModSettings.IsDedicated) { ThisPlayerPacked = LocalPlayer.Entity.networkId.PackedValue; } }
/// <summary> /// Updates the player setups and changes the static variable accordingly /// </summary> private IEnumerator UpdateSetups() { while (true) { yield return(null); Players.Clear(); AllPlayerEntities.Clear(); PlayerHands.Clear(); if (!ModSettings.IsDedicated) { ThisPlayerPacked = LocalPlayer.Entity.networkId.PackedValue; if (ThisPlayerPacked == 0) { ThisPlayerPacked = LocalPlayer.GameObject.GetComponent <BoltEntity>().networkId.PackedValue; } if (ThisPlayerPacked == 0) { ModAPI.Console.Write("Still 0"); } } bool search = false; if (PlayerHands.ContainsValue(null) || PlayerHands.Count != Scene.SceneTracker.allPlayers.Count || PlayerHands.Count == 0) { PlayerHands.Clear(); search = true; } for (int i = 0; i < Scene.SceneTracker.allPlayers.Count; i++) { Players.Add(Scene.SceneTracker.allPlayers[i]); if (!ModSettings.IsDedicated) { if (Scene.SceneTracker.allPlayers[i].transform.root == LocalPlayer.Transform.root) { ThisPlayerID = i; } } BoltEntity b = Scene.SceneTracker.allPlayers[i].GetComponent <BoltEntity>(); if (b != null) { AllPlayerEntities.Add(b); try { if (UnityEngine.Input.GetKey(KeyCode.F8)) { ModAPI.Console.Write("PLAYER " + b.transform.root.name); ModAPI.Log.Write("PLAYER " + "\n\n" + ModReferences.ListAllChildren(b.transform.root, "")); } } catch (Exception exc) { ModAPI.Console.Write(exc.ToString()); } if (search) { Transform hand = FindDeepChild(b.transform, "rightHandHeld"); if (hand != null) { PlayerHands.Add(b.networkId.PackedValue, hand); Debug.Log("FOUND HAND TRANSFORM for player " + b.networkId.PackedValue); } else { Debug.LogWarning("Couldnt find hand for player " + b.networkId.PackedValue); } } } } yield return(new WaitForSeconds(10)); } }