Calibrate and install GPS lane weighting archive

This commit is contained in:
2026-06-19 20:24:27 -05:00
parent 85d1e326ee
commit 20daac34e5
10 changed files with 407 additions and 31 deletions
+17 -12
View File
@@ -2,36 +2,41 @@
set -euo pipefail
if [[ $# -lt 3 ]]; then
echo "usage: $0 <game-dir> <archive-or-archive-dir> <work-dir>" >&2
echo "usage: $0 <game-dir> <archive-or-archive-dir> <work-dir> [resource-regex] [resource-path] [mod-name]" >&2
exit 2
fi
game_dir=$1
archive_path=$2
work_dir=$3
container=${CP77_TOOLBOX_CONTAINER:-2077}
tool='${HOME}/.dotnet/tools/cp77tools'
resource_regex=${4:-'all\.traffic_persistent$'}
resource_path=${5:-'base/worlds/03_night_city/sectors/_generated/traffic/all.traffic_persistent'}
mod_name=${6:-zz_edge_weight_gps}
raw_dir="${work_dir}/01_raw"
json_dir="${work_dir}/02_json"
patched_json_dir="${work_dir}/03_json_patched"
patched_raw_dir="${work_dir}/04_raw_patched"
pack_root="${work_dir}/${mod_name}"
packed_dir="${work_dir}/05_packed"
resource_dir=$(dirname "${resource_path}")
resource_file=$(basename "${resource_path}")
mkdir -p "${raw_dir}" "${json_dir}" "${patched_json_dir}" "${patched_raw_dir}" "${packed_dir}"
mkdir -p "${raw_dir}" "${json_dir}" "${patched_json_dir}" "${patched_raw_dir}" "${pack_root}/${resource_dir}" "${packed_dir}"
toolbox run --container "${container}" bash -lc \
"${tool} extract '$archive_path' --gamepath '$game_dir' --outpath '$raw_dir' --regex 'traffic.*persistent|persistent.*traffic|traffic.*lane|world.*traffic'"
tools/cp77_toolbox.sh extract "${archive_path}" \
--gamepath "${game_dir}" \
--outpath "${raw_dir}" \
--regex "${resource_regex}"
toolbox run --container "${container}" bash -lc \
"${tool} convert serialize '$raw_dir' --outpath '$json_dir'"
tools/cp77_toolbox.sh convert serialize "${raw_dir}" --outpath "${json_dir}"
python3 tools/patch_traffic_lanes.py "${json_dir}" "${patched_json_dir}" --copy-unchanged
toolbox run --container "${container}" bash -lc \
"${tool} convert deserialize '$patched_json_dir' --outpath '$patched_raw_dir'"
tools/cp77_toolbox.sh convert deserialize "${patched_json_dir}" --outpath "${patched_raw_dir}"
toolbox run --container "${container}" bash -lc \
"${tool} pack '$patched_raw_dir' --outpath '$packed_dir'"
cp "${patched_raw_dir}/${resource_file}" "${pack_root}/${resource_path}"
tools/cp77_toolbox.sh pack "${pack_root}" --outpath "${packed_dir}"
echo "packed archive output: ${packed_dir}"