47 lines
1.6 KiB
Bash
47 lines
1.6 KiB
Bash
#!/usr/bin/env bash
|
|
# Terrain-Textur-Sync (Karte t_ab408127): terrain_arrays.res + Thumbnails aus
|
|
# dem Client-Klon in den Map-Editor spiegeln (analog tools/sync_models.sh).
|
|
# Die CC0-Texturen leben EINMAL im Client-Repo; der Editor lädt sie via
|
|
# res://assets/textures/terrain/ (Muster: models/-Ordner mit .gdignore).
|
|
#
|
|
# Aufruf: aus dem Map-Editor-Repo → tools/sync_terrain_tex.sh [--check]
|
|
set -u
|
|
MODE="sync"
|
|
if [ "${1:-}" = "--check" ]; then MODE="check"; fi
|
|
|
|
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
CLIENT="${SCOPEDVR_CLIENT_DIR:-}"
|
|
for k in "$DIR/../scopedvr-client" "$DIR/../../scopedvr-client"; do
|
|
[ -d "$k/assets/textures/terrain" ] && CLIENT="$(cd "$k" && pwd)" && break
|
|
done
|
|
if [ -z "$CLIENT" ]; then
|
|
echo "FEHLER: Client-Klon mit assets/textures/terrain nicht gefunden."
|
|
echo " SCOPEDVR_CLIENT_DIR=/pfad/zum/client setzen oder Klon nach ../scopedvr-client."
|
|
exit 1
|
|
fi
|
|
|
|
DST="$DIR/assets/textures/terrain"
|
|
mkdir -p "$DST"
|
|
touch "$DST/.gdignore" # Godot soll die Rohdateien NICHT importieren
|
|
|
|
changed=0
|
|
for f in terrain_arrays.res terrain_thumbs.png terrain_thumbs.json; do
|
|
if ! cmp -s "$CLIENT/assets/textures/terrain/$f" "$DST/$f" 2>/dev/null; then
|
|
if [ "$MODE" = "check" ]; then
|
|
echo "ABWEICHUNG: $f"
|
|
changed=1
|
|
else
|
|
cp -f "$CLIENT/assets/textures/terrain/$f" "$DST/$f"
|
|
echo "kopiert: $f"
|
|
changed=1
|
|
fi
|
|
fi
|
|
done
|
|
|
|
if [ "$MODE" = "check" ]; then
|
|
[ "$changed" -eq 0 ] && echo "--check: terrain-Texturen aktuell (Exit 0)." && exit 0
|
|
echo "--check: terrain-Texturen weichen ab (Exit 1)."
|
|
exit 1
|
|
fi
|
|
echo "Sync fertig: $DST"
|
|
exit 0
|