Skip to content

Commit

Permalink
Copy LODs for all worldspaces
Browse files Browse the repository at this point in the history
  • Loading branch information
terry-haire committed Oct 30, 2023
1 parent 014f8ef commit 31e19e6
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 2 deletions.
1 change: 1 addition & 0 deletions src/gui/InstallerParams.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ class InstallerParams:
skip_plugin_move: bool = False
ignore_existing_files: bool = False
debug: bool = False
skip_lod_settings: bool = False
32 changes: 30 additions & 2 deletions src/gui/WorkerThread.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@ def run(self):
if not self.installer_params.skip_data:
self.copy_data_files()

if not self.installer_params.skip_lod_settings:
self.copy_lod_settings()

if not self.installer_params.skip_plugin_extract:
self.extract_plugin_data()

Expand Down Expand Up @@ -321,15 +324,40 @@ def copy_data_files(self):
# Iterate over the files and subdirectories in the source directory
for item in data_files_dir.iterdir():
source_item = os.path.join(data_files_dir, item)
destination_item = os.path.join(self.output_path, item.name)

destination_item = self.output_path / item.name

if os.path.isdir(source_item):
shutil.copytree(source_item, destination_item)
shutil.copytree(
source_item, destination_item, dirs_exist_ok=True)
else:
shutil.copy(source_item, destination_item)

self.output_received.emit("Copying data files... [DONE]\n")

def copy_lod_settings(self):
self.output_received.emit("Copying LOD settings...\n")

lod_settings_path = Path("src\\data\\LODSettings\\WastelandNV.LOD")
terrain_path = self.output_path / "meshes" / "Terrain"

if terrain_path.exists():
lod_settings_dir_new = self.output_path / "LODSettings"

if not lod_settings_dir_new.exists():
lod_settings_dir_new.mkdir()

for path in terrain_path.iterdir():
if not path.is_dir():
continue

lod_settings_path_new = (
lod_settings_dir_new / f"{path.name}.LOD")

shutil.copy(lod_settings_path, lod_settings_path_new)

self.output_received.emit("Copying LOD settings... [DONE]\n")

def extract_plugin_data(self):
self.output_received.emit("Extract plugin data...\n")

Expand Down
2 changes: 2 additions & 0 deletions src/gui/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -857,6 +857,7 @@ def pre_startup_check():
parser.add_argument("--skip_data_files", action="store_true")
parser.add_argument("--skip_plugin_extract", action="store_true")
parser.add_argument("--skip_plugin_import", action="store_true")
parser.add_argument("--skip_lod_settings", action="store_true")
parser.add_argument("--ignore_existing_files", action="store_true")
parser.add_argument("--debug", action="store_true")

Expand All @@ -878,6 +879,7 @@ def pre_startup_check():
skip_plugin_extract=args.skip_plugin_extract,
skip_plugin_import=args.skip_plugin_import,
ignore_existing_files=args.ignore_existing_files,
skip_lod_settings=args.skip_lod_settings,
debug=args.debug,
))

Expand Down

0 comments on commit 31e19e6

Please sign in to comment.