diff --git a/DevourClient/Hacks/Misc.cs b/DevourClient/Hacks/Misc.cs index 5f9e375..c21b15c 100644 --- a/DevourClient/Hacks/Misc.cs +++ b/DevourClient/Hacks/Misc.cs @@ -48,13 +48,13 @@ namespace DevourClient.Hacks public static void WalkInLobby(bool walk) { try { - if (Helpers.LocalPlayer.LocalPlayer_.GetComponent() == null) + if (Helpers.Entities.LocalPlayer_.GetComponent() == null) { - Helpers.LocalPlayer.LocalPlayer_.AddComponent(); - Helpers.LocalPlayer.LocalPlayer_.GetComponent().enabled = false; + Helpers.Entities.LocalPlayer_.AddComponent(); + Helpers.Entities.LocalPlayer_.GetComponent().enabled = false; } - Helpers.LocalPlayer.LocalPlayer_.GetComponent().enabled = walk; + Helpers.Entities.LocalPlayer_.GetComponent().enabled = walk; } catch { return; } } @@ -122,10 +122,7 @@ namespace DevourClient.Hacks { NolanBehaviour Nolan = Player.GetPlayer(); - List items = new List(); - items = Object.FindObjectsOfType().ToList(); - - foreach (SurvivalInteractable item in items) + foreach (SurvivalInteractable item in Helpers.Entities.SurvivalInteractables) { item.transform.position = Nolan.transform.position + Nolan.transform.forward * Random.RandomRange(1f, 3f); } @@ -215,7 +212,7 @@ namespace DevourClient.Hacks { NolanBehaviour Nolan = Player.GetPlayer(); //UnityEngine.Object.FindObjectOfType(); - foreach (KeyBehaviour keyBehaviour in UnityEngine.Object.FindObjectsOfType()) + foreach (KeyBehaviour keyBehaviour in Helpers.Entities.Keys) { bool flag = keyBehaviour == null; if (flag) diff --git a/DevourClient/Helpers/StateHelper.cs b/DevourClient/Helpers/StateHelper.cs index 77e2176..e396a9f 100644 --- a/DevourClient/Helpers/StateHelper.cs +++ b/DevourClient/Helpers/StateHelper.cs @@ -20,12 +20,12 @@ namespace DevourClient.Helpers public static NolanBehaviour GetPlayer() { - if (LocalPlayer.LocalPlayer_ == null) + if (Entities.LocalPlayer_ == null) { return null; } - return LocalPlayer.LocalPlayer_.GetComponent(); + return Entities.LocalPlayer_.GetComponent(); } public static bool IsPlayerCrawling() @@ -42,9 +42,12 @@ namespace DevourClient.Helpers } - public class LocalPlayer - { + public class Entities + { public static GameObject LocalPlayer_; + public static GoatBehaviour[] GoatsAndRats; + public static SurvivalInteractable[] SurvivalInteractables; + public static KeyBehaviour[] Keys; public static IEnumerator GetLocalPlayer() { @@ -73,11 +76,44 @@ namespace DevourClient.Helpers for (int i = 0; i < currentPlayers.Length; i++) { - result.Add(currentPlayers[i]); + result.Add(currentPlayers[i]); } return result; } + + public static IEnumerator GetGoatsAndRats() + { + for (;;) + { + GoatsAndRats = GoatBehaviour.FindObjectsOfType(); + + // Wait 5 seconds before caching objects again. + yield return new WaitForSeconds(5f); + } + } + + public static IEnumerator GetSurvivalInteractables() + { + for (;;) + { + SurvivalInteractables = SurvivalInteractable.FindObjectsOfType(); + + // Wait 5 seconds before caching objects again. + yield return new WaitForSeconds(5f); + } + } + + public static IEnumerator GetKeys() + { + for (;;) + { + Keys = KeyBehaviour.FindObjectsOfType(); + + // Wait 5 seconds before caching objects again. + yield return new WaitForSeconds(5f); + } + } } } diff --git a/DevourClient/MelonMain.cs b/DevourClient/MelonMain.cs index 7020c02..e738d52 100644 --- a/DevourClient/MelonMain.cs +++ b/DevourClient/MelonMain.cs @@ -39,7 +39,10 @@ namespace DevourClient public override void OnApplicationStart() { MelonLogger.Msg("For the Queen !"); - MelonCoroutines.Start(Helpers.LocalPlayer.GetLocalPlayer()); + MelonCoroutines.Start(Helpers.Entities.GetLocalPlayer()); + MelonCoroutines.Start(Helpers.Entities.GetGoatsAndRats()); + MelonCoroutines.Start(Helpers.Entities.GetSurvivalInteractables()); + MelonCoroutines.Start(Helpers.Entities.GetKeys()); } [MethodImpl(MethodImplOptions.AggressiveInlining)] @@ -130,7 +133,7 @@ namespace DevourClient { try { - Helpers.LocalPlayer.LocalPlayer_.GetComponent().TimeScale = this._PlayerSpeedMultiplier; + Helpers.Entities.LocalPlayer_.GetComponent().TimeScale = this._PlayerSpeedMultiplier; } catch { return; } } @@ -179,12 +182,11 @@ namespace DevourClient if (this.goat_rat_esp) { - foreach (GoatBehaviour goat in UnityEngine.Object.FindObjectsOfType() as UnhollowerBaseLib.Il2CppReferenceArray) + foreach (GoatBehaviour goat in Helpers.Entities.GoatsAndRats) { if (goat != null) { - Vector3 pivotPos = goat.transform.position; //Pivot point NOT at the origin, at the center Vector3 playerFootPos; playerFootPos.x = pivotPos.x; playerFootPos.z = pivotPos.z; playerFootPos.y = pivotPos.y - 2f; //At the feet Vector3 playerHeadPos; @@ -211,7 +213,7 @@ namespace DevourClient if (this.item_esp) { - foreach (SurvivalInteractable obj in UnityEngine.Object.FindObjectsOfType() as UnhollowerBaseLib.Il2CppReferenceArray) + foreach (SurvivalInteractable obj in Helpers.Entities.SurvivalInteractables) { if (obj != null) { @@ -242,7 +244,7 @@ namespace DevourClient } } - foreach (KeyBehaviour key in UnityEngine.Object.FindObjectsOfType() as UnhollowerBaseLib.Il2CppReferenceArray) + foreach (KeyBehaviour key in Helpers.Entities.Keys) { if (key != null) {