public static void DumpWorld(string levelName) { Utils.CallSafe("DUmpWorld", () => { Development.WorldDumper worldDumper = new Development.WorldDumper(); var dumpFolder = ModUtils.GetPath($"HTMLWorldDump\\{levelName}"); if (Directory.Exists(dumpFolder)) { Directory.Delete(dumpFolder, true); } Directory.CreateDirectory(dumpFolder); var watch = Stopwatch.StartNew(); worldDumper.Dump(dumpFolder); Logger.Log($"World dump finished - took {watch.ElapsedMilliseconds} ms"); }); /*GameObject[] gos = gos = GameObject.FindObjectsOfType<GameObject>(); * * string path = Client.GetPath($"WorldDump\\{levelName}"); * Directory.CreateDirectory(path); * * StringBuilder builder = new StringBuilder(); * int index = 0; * foreach (GameObject go in gos) { * Transform trans = go.GetComponent<Transform>(); * if (trans == null || trans.parent != null) continue; * * string SanitizedName = go.name; * SanitizedName = SanitizedName.Replace("/", ""); * string dumpFilePath = path + "\\" + SanitizedName + ".txt"; * try { * DumpObject(trans, dumpFilePath); * } * catch (Exception e) { * Logger.Log("Unable to dump objects: " + SanitizedName + "\n"); * Logger.Log(e.Message + "\n"); * } * * builder.Append(go.name + " (" + SanitizedName + "), Trans: " + * trans.position.ToString() + "\n"); ++index; * } * * System.IO.File.WriteAllText(path + "\\dumpLog.txt", builder.ToString());*/ }
static void DumpLocalPlayer() { var localPlayerFileName = "localPlayer.txt"; var builder = new StringBuilder(); Utils.PrintTransformTree( localPlayer.transform, 0, (int level, string text) => { for (int i = 0; i < level; ++i) { builder.Append(" "); } builder.Append(text + "\n"); }); var localPlayerPath = ModUtils.GetPath(localPlayerFileName); File.WriteAllText(localPlayerPath, builder.ToString()); }
/// <summary> /// Starts the mod. Called from Injector. /// </summary> public static void Start() { // Game.Hooks.PlayMakerActionHooks.Install(); var bundleFolderPath = "Mods/Assets/MPMod/mpdata"; var assetBundlePath = ModUtils.GetPath(bundleFolderPath); if (!File.Exists(assetBundlePath)) { FatalError("Cannot find mpdata asset bundle."); return; } _assetBundle = AssetBundle.CreateFromFile(assetBundlePath); var go = new GameObject("Multiplayer GUI Controller"); go.AddComponent <UI.MPGUI>(); go = new GameObject("Multiplayer Controller"); go.AddComponent <MPController>(); UI.Console.RegisterCommand("quit", (string[] args) => { Application.Quit(); }); }