From 3d7ba993d5f292b70d6a1de7c77c54d899e67884 Mon Sep 17 00:00:00 2001 From: scopedvr-operator Date: Tue, 20 Oct 2026 10:01:57 +0000 Subject: [PATCH] glb_mesh_store: verschachtelte Pack-Modelle auch in models/ finden MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Operator-Befund aus dem Eigenstaendigkeits-Beweis auf dem PC (20.10.): Die App baute den Registry-Pfad nur als /. Der mitgelieferte models/-Ordner NEBEN der App enthaelt die Pack-Struktur aber DIREKT (models/military_desert/props/box_010.glb). Ergebnis: 291 von 334 Modellen (alle verschachtelten Pack-Objekte — genau die, mit denen die Karten gebaut werden) wurden in der eigenstaendigen App nicht gefunden. Fix: zusaetzlicher Kandidat / — der flache Alt-Pfad bleibt unveraendert. Belegt (exportierte App, nacktes Umfeld, frisches HOME): box_010 -> models/military_desert/props/box_010.glb (vorher: leer) baum_kiefer_1 -> models/baum_kiefer_1.glb fehlende_glbs=0 PROBE ERGEBNIS: OK Suiten: gui_smoke 92 OK, Import 0 Fehler. --- src/viewport/glb_mesh_store.gd | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/viewport/glb_mesh_store.gd b/src/viewport/glb_mesh_store.gd index 200195f..5bf6145 100644 --- a/src/viewport/glb_mesh_store.gd +++ b/src/viewport/glb_mesh_store.gd @@ -144,11 +144,20 @@ static func _kandidaten(oid: String) -> Array: var rel := str(_eintrag(oid).get("glb", "")) if rel.begins_with("res://"): var sub := rel.substr(6) + # Operator-Korrektur 20.10. (Eigenständigkeits-Beweis): der mitgelieferte + # models/-Ordner NEBEN der App enthält die Pack-Struktur DIREKT + # (models/military_desert/props/box_010.glb) — nicht unter + # models/assets/objekte/. Ohne den zweiten Kandidaten unten werden ALLE + # verschachtelten Pack-Objekte in der eigenständigen App nicht gefunden + # (belegt: barrel_001/box_010 -> leer, fehlende_glbs=2 trotz 334 GLBs). + var sub_kurz := sub.trim_prefix("assets/objekte/") for quelle in quellen(): var q := str(quelle) var marke := "/assets/objekte" var wurzel := q.substr(0, q.length() - marke.length()) if q.ends_with(marke) else q out.append(basis.path_join(wurzel).path_join(sub)) + if sub_kurz != sub: + out.append(basis.path_join(wurzel).path_join(sub_kurz)) for quelle in quellen(): out.append(basis.path_join(str(quelle)).path_join(oid + ".glb")) return out