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