Added ability to load lang files

This commit is contained in:
strongleong 2023-02-07 23:53:17 +11:00
parent 40e264083f
commit d4582cb6e9
4 changed files with 50 additions and 3273 deletions

View File

@ -0,0 +1,4 @@
Menu_Options_MyMenu My custom options menu
My_Menu_Test_Bool Test Boolean
My_Menu_Test_Counter Test Counter
My_Menu_Test_Slider Test Slider

File diff suppressed because it is too large Load Diff

View File

@ -52,6 +52,12 @@ function disable_colorded_output() {
$PSStyle.OutputRendering = [System.Management.Automation.OutputRendering]::PlainText; $PSStyle.OutputRendering = [System.Management.Automation.OutputRendering]::PlainText;
} }
function normalize_mod_name($mod) {
$mod = $mod.TrimEnd("\");
$mod = $mod.TrimStart(".\");
return $mod;
}
function check_pack_expl() { function check_pack_expl() {
if (-not (test-path $packed_explorer_path)) { if (-not (test-path $packed_explorer_path)) {
Write-Output "Error: $pack_expl_name was not found at '$packed_explorer_path'. Please download $pack_expl_name >= $pack_expl_ver"; Write-Output "Error: $pack_expl_name was not found at '$packed_explorer_path'. Please download $pack_expl_name >= $pack_expl_ver";
@ -126,17 +132,45 @@ function unload_mod($mod) {
} }
} }
# TODO: Not just copy. Copy original file and add content of misc to the end function load_mod_languages($mod) {
function load_misc($mod) { if (-not (Test-Path $mod\lang\)) {
if (-not (Test-Path $mod\miscs\)) { return;
return
} }
Copy-Item -Path $mod\mics\* -Destination $scrapland_path\ -Recurse -Force; $mod_lang_folder = "$scrapland_path\Language\$mod";
if (-not (Test-Path $mod_lang_folder)) {
mkdir $mod_lang_folder | Out-Null;
} }
# TODO: Copy-Item $mod\lang\* $mod_lang_folder;
function unload_misc($mod) { }
function unload_mod_languages($mod) {
if (-not (Test-Path $mod\lang\)) {
return;
}
Remove-Item -Recurse "$scrapland_path\Language\$mod\";
}
function build_game_languages() {
$lang_path = "$scrapland_path\Language";
Get-ChildItem $lang_path -File -Filter *.txt.bak | ForEach-Object {
Copy-Item $_ ($_.FullName.Replace(".bak", "")) -Force
}
Get-ChildItem $lang_path -Directory | ForEach-Object {
Get-ChildItem $_ -Filter *.txt | ForEach-Object {
if (-not (Test-Path "$lang_path\$($_.Name).bak")) {
Copy-Item "$lang_path\$($_.Name)" "$lang_path\$($_.Name).bak" -Force;
Write-Output "" >> $lang_path\$($_.Name);
}
Get-Content $_ >> $lang_path\$($_.Name);
}
}
} }
function build_mod($mod) { function build_mod($mod) {
@ -146,12 +180,12 @@ function build_mod($mod) {
function install_mod($mod) { function install_mod($mod) {
load_mod($mod); load_mod($mod);
load_misc($mod); load_mod_languages($mod);
} }
function uninstall_mod($mod) { function uninstall_mod($mod) {
unload_mod($mod); unload_mod($mod);
unload_misc($mod); unload_mod_languages($mod);
} }
function make_all_mods() { function make_all_mods() {
@ -181,9 +215,11 @@ function make_mod($mod) {
function main() { function main() {
disable_colorded_output; disable_colorded_output;
check_pack_expl; check_pack_expl;
$mod_folder = normalize_mod_name($mod_folder);
if (-not $mod_folder) { if (-not $mod_folder) {
if ($uninstall) { uninstall_all_mods; } else { make_all_mods; } if ($uninstall) { uninstall_all_mods; } else { make_all_mods; }
build_game_languages;
return; return;
} }
@ -193,6 +229,7 @@ function main() {
} }
if ($uninstall) { uninstall_mod($mod_folder); } else { make_mod($mod_folder); } if ($uninstall) { uninstall_mod($mod_folder); } else { make_mod($mod_folder); }
build_game_languages;
} }
main main