Пример #1
0
        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());*/
        }
Пример #2
0
        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());
        }
Пример #3
0
        /// <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(); });
        }