#!/usr/bin/env python3 # -*- coding: utf-8 -*- # -*- mode: python-mode; python-indent-offset: 4; -*- # SPDX-License-Identifier: MIT # SPDX-FileCopyrightText: © 2023 Wildfire Games # SPDX-FileCopyrightText: © 2023 Stanislas Daniel Claude Dolcini from A26_A27.ActorsWithMaterialsWithNoSpecMapFixer import ActorsWithMaterialsWithNoSpecMapFixer from A26_A27.P265 import TemplateFixer as RequirementsFixer from A26_A27.P292 import remove_terrain_materials_recursively, remove_actor_materials_recursively from argparse import ArgumentParser from pathlib import Path import os if __name__ == '__main__': parser = ArgumentParser(description='A26 to A27 converter.') parser.add_argument('-r', '--root', action='store', dest='root', default=os.path.dirname(os.path.realpath(__file__))) parser.add_argument('-m', '--mod', action='store', dest='mod', default='public') parser.add_argument('-v', '--verbose', action='store_true', default=False, help="Be verbose.") args = parser.parse_args() script_dir = args.root mod_name = args.mod path = Path(script_dir) / mod_name print(f"Running in {path}") print("Fixing rP27245...") template_fixer = RequirementsFixer(path) template_fixer.run() print("Fixing Actors using no specmap (rP27308)...") template_fixer = ActorsWithMaterialsWithNoSpecMapFixer(path) template_fixer.run() print("Fixing actors using old deprecated materials (rP27368)") if os.path.exists(path / 'art' / 'terrains') and os.path.isdir(path / 'art' / 'terrains'): remove_terrain_materials_recursively(path / 'art' / 'terrains') if os.path.exists(path / 'art' / 'actors') and os.path.isdir(path / 'art' / 'actors'): remove_actor_materials_recursively(path / 'art' / 'actors')