M2-Karte t_9117ee32: Objekt-Pipeline 'Fass' — Registry-Sync + Thumbnail; Tests: 12 Objekte, Namens-Fallback ohne Quellcode-Touch

This commit is contained in:
Hermes godot-vr 2026-10-15 16:07:03 +00:00
parent 23ede45efd
commit cddebb8c26
4 changed files with 48 additions and 4 deletions

View file

@ -12,6 +12,7 @@
"rock_large": { "poly": 128, "collision": { "shape": "sphere", "radius": 1.5 } }, "rock_large": { "poly": 128, "collision": { "shape": "sphere", "radius": 1.5 } },
"boulder_small": { "poly": 96, "collision": { "shape": "sphere", "radius": 0.8 } }, "boulder_small": { "poly": 96, "collision": { "shape": "sphere", "radius": 0.8 } },
"tree_pine": { "poly": 180, "collision": { "shape": "cylinder", "radius": 0.4, "height": 12.0 } }, "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 } }
} }
} }

BIN
library/thumbs/fass.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,003 B

View file

@ -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

View file

@ -52,7 +52,7 @@ func _test_manifest_load() -> void:
var manifest := _load_manifest() var manifest := _load_manifest()
_check(not manifest.is_empty(), "Manifest lädt und ist ein Objekt") _check(not manifest.is_empty(), "Manifest lädt und ist ein Objekt")
var lib: Dictionary = manifest.get("objects", {}) 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 var all_ok := true
for oid in lib.keys(): for oid in lib.keys():
var entry: Dictionary = lib[oid] var entry: Dictionary = lib[oid]
@ -62,8 +62,11 @@ func _test_manifest_load() -> void:
if str(col.get("shape", "")).is_empty(): if str(col.get("shape", "")).is_empty():
all_ok = false all_ok = false
_check(all_ok, "jedes Objekt hat poly > 0 + Kollider-Eintrag") _check(all_ok, "jedes Objekt hat poly > 0 + Kollider-Eintrag")
# Deutsche Namen decken ALLE IDs ab (Bibliothek-Browser zeigt nichts Englisches). # Anzeigenamen decken ALLE IDs ab — feste Übersetzung (NAMES) ODER der
var names_ok := lib.keys().all(func(oid) -> bool: return LibraryBrowser.NAMES.has(oid)) # 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(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("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") _check(LibraryBrowser.object_label("gibts_nicht") == "Gibts Nicht", "object_label: unbekannte ID fällt auf capitalize zurück")