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 0000000..669c315 Binary files /dev/null and b/library/thumbs/fass.png differ diff --git a/library/thumbs/fass.png.import b/library/thumbs/fass.png.import new file mode 100644 index 0000000..52c87bc --- /dev/null +++ b/library/thumbs/fass.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://pto8smcxgi66" +path="res://.godot/imported/fass.png-36b53a48ed015ce625d232e164a0f9d6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://library/thumbs/fass.png" +dest_files=["res://.godot/imported/fass.png-36b53a48ed015ce625d232e164a0f9d6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/tests/test_library.gd b/tests/test_library.gd index 1203d1a..aff6bdd 100644 --- a/tests/test_library.gd +++ b/tests/test_library.gd @@ -52,7 +52,7 @@ func _test_manifest_load() -> 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")