public void Start() { Instance = this; loader = gameObject.GetComponent <ModLoader.ModLoader>(); try { var harmony = HarmonyInstance.Create("human.cptools"); harmony.PatchAll(Assembly.GetExecutingAssembly()); } catch (TypeLoadException e) { Debug.Log(e.Message); Debug.Log(e.StackTrace); loader.Log("\"" + e.Source + "\""); } }
public void OnCommandTyped(string cmd, string[] args) { Human hl = GetLocalHuman(); if (hl == null) { loader.LogLine("[cp] Could not get Human object"); return; } else if (!hl.player.host.isLocal) { loader.LogLine("[cp] Not the server host, may not run cp commands"); return; } switch (cmd) { case "cp-toggle": if (args.Length == 0) { cpTriggers = !cpTriggers; } else if (!bool.TryParse(args[0].ToLower(), out cpTriggers)) { loader.LogLine("[cp-toggle] Invalid boolean"); return; } ToggleCheckpointTriggers(cpTriggers); loader.Log(string.Format("[cp-toggle] {0} checkpoint triggers", cpTriggers ? "Enabled" : "Disabled")); break; case "cp-state": if (args.Length == 0 || !bool.TryParse(args[0], out bool state)) { loader.LogLine("[cp-set] Invalid boolean input"); return; } Human[] toSet = SelectHumans((args.Length < 2) ? "all" : args[1]).ToArray(); if (toSet.Length == 0) { loader.LogLine("[cp-set] Cannot find player given"); return; } foreach (var h in toSet) { var spndata = h.GetComponent <SpawnpointData>(); if (spndata == null) { h.gameObject.AddComponent <SpawnpointData>(); spndata = h.GetComponent <SpawnpointData>(); } spndata.enabled = state; } loader.LogLine(string.Format("[cp-reset] {0} custom checkpoints for target", state? "Enabled" : "Disabled")); break; case "cp-set": toSet = SelectHumans((args.Length == 0) ? "" : args[0]).ToArray(); if (toSet.Length == 0) { loader.LogLine("[cp-set] Cannot find player given"); return; } foreach (var h in toSet) { var spndata = h.GetComponent <SpawnpointData>(); if (spndata == null) { h.gameObject.AddComponent <SpawnpointData>(); spndata = h.GetComponent <SpawnpointData>(); } spndata.customSpawn = true; spndata.spawnpoint = hl.transform.position; } loader.LogLine("[cp-set] Set spawnpoint to " + hl.transform.position.ToString()); break; case "cp-reset": toSet = SelectHumans((args.Length == 0) ? "" : args[0]).ToArray(); if (toSet.Length == 0) { loader.LogLine("[cp-reset] Cannot find player given"); return; } foreach (var h in toSet) { var spndata = h.GetComponent <SpawnpointData>(); if (spndata == null) { h.gameObject.AddComponent <SpawnpointData>(); spndata = h.GetComponent <SpawnpointData>(); } spndata.customSpawn = false; } loader.LogLine("[cp-reset] Removed custom spawn "); break; } }