using HarmonyLib; using GadgetCore.API; using UnityEngine; using System.Collections; namespace First.Patches { [HarmonyPatch(typeof(Chunk))] [HarmonyPatch("GeneratePlatforms")] [HarmonyGadget("First")] public static class Patch_Chunk_GeneratePlatforms { [HarmonyPrefix] public static bool Prefix(Chunk __instance) { int type = UnityEngine.Random.Range(0, 4); if (type < 3) { for (int i = 0; i < 5; i++) { if (UnityEngine.Random.Range(0, 2) == 0) { Network.Instantiate(Resources.Load("plat/plat1"), GetPlatPos(i, __instance.transform.position), Quaternion.identity, 0); } } } else { for (int i = 0; i < 5; i++) { if (UnityEngine.Random.Range(0, 2) == 0) { Network.Instantiate(Resources.Load("plat/platMove"), GetPlatPos(i, __instance.transform.position), Quaternion.identity, 0); } } } // Add code to run before `MethodName` is called. return false; // Return false to prevent the vanilla method from running. } // Token: 0x0600013F RID: 319 RVA: 0x0001AB44 File Offset: 0x00018F44 private static Vector3 GetPlatPos(int i, Vector3 position) { Vector3 result = new Vector3(0f, 0f, 0f); float num = (float)UnityEngine.Random.Range(-10, 11) * 0.7f; float num2 = (float)UnityEngine.Random.Range(-7, 8) * 0.7f; switch (i) { case 0: result = new Vector3(position.x - 16f + num, position.y + 16f + num2, 5f); break; case 1: result = new Vector3(position.x + 16f + num, position.y + 16f + num2, 5f); break; case 2: result = new Vector3(position.x + 16f + num, position.y - 16f + num2, 5f); break; case 3: result = new Vector3(position.x - 16f + num, position.y - 16f + num2, 5f); break; case 4: result = new Vector3(position.x + num * 2f, position.y + num2, 5f); break; } return result; } /* [HarmonyPostfix] public static void Postfix(ClassName __instance) { // Add code to run after `MethodName` is called. } */ } }