def disable_bcml_gfx(): if not util.get_settings("no_cemu"): settings = util.parse_cemu_settings() try: gpack = settings.getElementsByTagName("GraphicPack")[0] except IndexError: gpack = settings.createElement("GraphicPack") settings.appendChild(gpack) new_cemu = True entry: minidom.Element for entry in gpack.getElementsByTagName("Entry"): if new_cemu and entry.getElementsByTagName("filename"): new_cemu = False try: if ("bcml" in entry.getElementsByTagName("filename") [0].childNodes[0].data.lower()): gpack.removeChild(entry) except IndexError: if "bcml" in entry.getAttribute("filename").lower(): gpack.removeChild(entry) settings.writexml( (util.get_cemu_dir() / "settings.xml").open("w", encoding="utf-8"), addindent=" ", newl="\n", )
def parse_cemu_settings(self, params): try: cemu = Path(params["folder"]) set_path = cemu / "settings.xml" settings: minidom = util.parse_cemu_settings(set_path) game_dir: Path for entry in settings.getElementsByTagName( "GameCache")[0].getElementsByTagName("Entry"): entry: minidom.Element path = entry.getElementsByTagName("path")[0].childNodes[0].data if "U-King" in path: game_dir = Path(path).parent.parent / "content" break if not game_dir: return {} mlc_path = Path( settings.getElementsByTagName("mlc_path") [0].childNodes[0].data) update_dir = util.guess_update_dir(mlc_path, game_dir) dlc_dir = util.guess_aoc_dir(mlc_path, game_dir) return { "game_dir": str(game_dir), "update_dir": str(update_dir) if update_dir else "", "dlc_dir": str(dlc_dir) if dlc_dir else "", } except Exception as err: # pylint: disable=bare-except print(err) return {}
def enable_bcml_gfx(): if util.get_settings("no_cemu"): return settings = util.parse_cemu_settings() try: gpack = settings.getElementsByTagName("GraphicPack")[0] except IndexError: gpack = settings.createElement("GraphicPack") settings.appendChild(gpack) new_cemu = True def create_entry(path: str): def entry_matches(entry): try: return (path == entry.getElementsByTagName("filename") [0].childNodes[0].data) except IndexError: return path == entry.getAttribute("filename") if any( entry_matches(entry) for entry in gpack.getElementsByTagName("Entry")): return entry: minidom.Element = settings.createElement("Entry") if new_cemu: entry.setAttribute("filename", path) else: entryfile = settings.createElement("filename") entryfile.appendChild(settings.createTextNode(path)) entry.appendChild(entryfile) entrypreset = settings.createElement("preset") entrypreset.appendChild(settings.createTextNode("")) entry.appendChild(entrypreset) gpack.appendChild(entry) create_entry("graphicPacks\\BreathOfTheWild_BCML\\rules.txt") if (util.get_cemu_dir() / "graphicPacks" / "bcmlPatches").exists(): for rules in (util.get_cemu_dir() / "graphicPacks" / "bcmlPatches").rglob("rules.txt"): create_entry(str(rules.relative_to(util.get_cemu_dir()))) settings.writexml( (util.get_cemu_dir() / "settings.xml").open("w", encoding="utf-8"), addindent=" ", newl="\n", )
def refresh_master_export(): print("Exporting merged mod pack...") link_master_mod() if not util.get_settings("no_cemu"): settings = util.parse_cemu_settings() try: gpack = settings.getElementsByTagName("GraphicPack")[0] except IndexError: gpack = settings.createElement("GraphicPack") settings.appendChild(gpack) new_cemu = True entry: minidom.Element for entry in gpack.getElementsByTagName("Entry"): if new_cemu and entry.getElementsByTagName("filename"): new_cemu = False try: if "BCML" in entry.getElementsByTagName( "filename")[0].childNodes[0].data: break except IndexError: if "BCML" in entry.getAttribute("filename"): break else: bcmlentry = settings.createElement("Entry") if new_cemu: bcmlentry.setAttribute( "filename", "graphicPacks\\BreathOfTheWild_BCML\\rules.txt") else: entryfile = settings.createElement("filename") entryfile.appendChild( settings.createTextNode( "graphicPacks\\BreathOfTheWild_BCML\\rules.txt")) bcmlentry.appendChild(entryfile) entrypreset = settings.createElement("preset") entrypreset.appendChild(settings.createTextNode("")) bcmlentry.appendChild(entrypreset) gpack.appendChild(bcmlentry) settings.writexml( (util.get_cemu_dir() / "settings.xml").open("w", encoding="utf-8"), addindent=" ", newl="\n", )