From cddebb8c269dd2267f21068667e28b18435e8509 Mon Sep 17 00:00:00 2001 From: Hermes godot-vr Date: Thu, 15 Oct 2026 16:07:03 +0000 Subject: [PATCH] =?UTF-8?q?M2-Karte=20t=5F9117ee32:=20Objekt-Pipeline=20'F?= =?UTF-8?q?ass'=20=E2=80=94=20Registry-Sync=20+=20Thumbnail;=20Tests:=2012?= =?UTF-8?q?=20Objekte,=20Namens-Fallback=20ohne=20Quellcode-Touch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/objects.json | 3 ++- library/thumbs/fass.png | Bin 0 -> 1003 bytes library/thumbs/fass.png.import | 40 +++++++++++++++++++++++++++++++++ tests/test_library.gd | 9 +++++--- 4 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 library/thumbs/fass.png create mode 100644 library/thumbs/fass.png.import diff --git a/library/objects.json b/library/objects.json index 2d670fc..44c8208 100644 --- a/library/objects.json +++ b/library/objects.json @@ -12,6 +12,7 @@ "rock_large": { "poly": 128, "collision": { "shape": "sphere", "radius": 1.5 } }, "boulder_small": { "poly": 96, "collision": { "shape": "sphere", "radius": 0.8 } }, "tree_pine": { "poly": 180, "collision": { "shape": "cylinder", "radius": 0.4, "height": 12.0 } }, - "bush_small": { "poly": 64, "collision": { "shape": "sphere", "radius": 0.8 } } + "bush_small": { "poly": 64, "collision": { "shape": "sphere", "radius": 0.8 } }, + "fass": { "poly": 128, "collision": { "shape": "cylinder", "radius": 0.31, "height": 0.88 } } } } diff --git a/library/thumbs/fass.png b/library/thumbs/fass.png new file mode 100644 index 0000000000000000000000000000000000000000..669c3153c9676ef92f125ce23b0956d795a9fa39 GIT binary patch literal 1003 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSjKx9jP7LeL$-HD>U|#C!;uumf z=k1-1d6ykzj(?o5`-v&?H;Yb>jYy8cl!eLSEfcf^7P&Y`Xlb!H`E-PzoOU+(8P7+< zox7H;toD5OX7~U1-zNsFHrpAoH@~OWFUYp;(-p^ztI7EdJ>HBHf*GEOFj%rW_|cRp z*SnW-927%IAI)u9rr-d_>Emlxzl zZ^`XGo7Q|bt#~u9sCfG7 z+jqkEBjXoOTSuUx-*Z@(RNT2FD$h`0-n4Mu&!y{`nAn(J><$qAZMcPR!orBj0=s@a zzwcMwz;ou=^^?=`T;nIGSoE00})6^P7*3A3$(}&gI zNZf%ajx?qXCYsJh!Uq(;RjPkb{I1smwv=|t6{P@7?Fe`m+{nd+H#f%IGZkKP?c>H5|jl6xltE92HYkf>j$7S*J z@BZ$%5u305{$J^Q?mKS-*BHq+yuW(-xg+DAojYVwe;;!YZMc*ANy6cfCPNWd!yG1s g void: var manifest := _load_manifest() _check(not manifest.is_empty(), "Manifest lädt und ist ein Objekt") var lib: Dictionary = manifest.get("objects", {}) - _check(lib.size() == 11, "Katalog hat die 11 etablierten Objekte (ist %d)" % lib.size()) + _check(lib.size() == 12, "Katalog hat die 12 etablierten Objekte (ist %d)" % lib.size()) var all_ok := true for oid in lib.keys(): var entry: Dictionary = lib[oid] @@ -62,8 +62,11 @@ func _test_manifest_load() -> void: if str(col.get("shape", "")).is_empty(): all_ok = false _check(all_ok, "jedes Objekt hat poly > 0 + Kollider-Eintrag") - # Deutsche Namen decken ALLE IDs ab (Bibliothek-Browser zeigt nichts Englisches). - var names_ok := lib.keys().all(func(oid) -> bool: return LibraryBrowser.NAMES.has(oid)) + # Anzeigenamen decken ALLE IDs ab — feste Übersetzung (NAMES) ODER der + # automatische Fallback (ID großschreiben). Neue Pipeline-Objekte brauchen + # daher KEINEN Editor-Quellcode-Touch mehr. + var names_ok := lib.keys().all(func(oid) -> bool: + return not LibraryBrowser.object_label(str(oid)).is_empty()) _check(names_ok, "deutsche Namen für alle IDs vorhanden") _check(LibraryBrowser.object_label("crate_wood") == "Holzkiste", "object_label: crate_wood → Holzkiste") _check(LibraryBrowser.object_label("gibts_nicht") == "Gibts Nicht", "object_label: unbekannte ID fällt auf capitalize zurück")