extends SceneTree ## Beweis-Probe (Karte t_9675e48d, EDITOR): GlbMeshStore liefert Military- ## Meshes MIT Pack-Textur (Palette-Atlas) statt weiß. Headless-Logikprobe: ## pro OID jede Oberfläche auf albedo_texture prüfen. ## ## /opt/data/home/bin/godot4 --headless --path . -s res://tests/probe_pack_texturen.gd ## Ausgabe: PROBE_PACK_TEX_EDITOR_OK/FAIL const OIDS := ["box_001", "barrel_001", "shell_001", "training_item_001", "wall_001", "container_001"] func _initialize() -> void: var fehler: Array = [] var tex_gesamt := 0 var weiss_gesamt := 0 for oid in OIDS: var mesh := GlbMeshStore.mesh_fuer(oid) if mesh == null: fehler.append("%s: kein Mesh (GLB fehlt im Lager?)" % oid) continue var tex := 0 var weiss := 0 for s in mesh.get_surface_count(): var mat := mesh.surface_get_material(s) if mat is BaseMaterial3D and (mat as BaseMaterial3D).albedo_texture != null: tex += 1 else: weiss += 1 if weiss > 0: fehler.append("%s: %d/%d Fläche(n) OHNE Textur" % [oid, weiss, tex + weiss]) else: print(" %s: %d Fläche(n) mit Pack-Textur" % [oid, tex]) tex_gesamt += tex weiss_gesamt += weiss print("Flächen gesamt: %d texturiert, %d weiß" % [tex_gesamt, weiss_gesamt]) # Negative-Kontrolle: unbekanntes Material liefert null (kein Crash). if GlbMeshStore.pack_material("gibt_es_nicht") != null: fehler.append("pack_material('gibt_es_nicht') sollte null liefern") for f in fehler: print(" FEHLER: %s" % f) print("PROBE_PACK_TEX_EDITOR_%s" % ("FAIL" if not fehler.is_empty() else "OK")) quit(1 if not fehler.is_empty() else 0)