pyrogenesis-migration-scripts/A26ToA27.py

39 lines
1.7 KiB
Python

#!/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')