scopedvr-map-editor/tests/test_mal_hinweis.gd
slyphax 66df3bdc1e Editor: Klick wählt das exakt getroffene Objekt (Mauer statt Nachbar-Gebäude) + Malen-Hinweis statt Stärke-Regler
- _pick_object: Kugel-Näherung nur noch Vorfilter, entschieden wird über den
  echten Mesh-Treffer (SelectionMath.ray_mesh_distance, Faces gecacht).
  Ohne Mesh-Treffer bleibt die alte Kugel-Wahl als Fallback.
- Terrain-Panel: im Malen-Modus ist der Stärke-Regler weg (Malen setzt das
  Material zellenweise, Stärke hatte nie eine Wirkung); stattdessen steht die
  feinste Mal-Einheit der Karte da (size / (resolution - 1)).
- Tests: test_klick_exakt 6/6 (reproduziert Gebäude-Kugel vor Mauer),
  test_mal_hinweis 4/4. Vorhandene Suiten unverändert (4 schon vorher rote
  Umgebungs-Tests: assets_panel, identitaet_client, model_sources,
  playtest_identitaet).

Ersetzt die nie gepushten Arbeitskopie-Änderungen der Karten t_12feca66 /
t_c487a430 / t_271a77bd (Material-IDs per lerp gemischt, Sub-Zellen ohne
Client/Server-Unterstützung).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 23:27:48 +02:00

26 lines
1 KiB
GDScript

extends SceneTree
## Editor-Tests (headless): Malen-Hinweis statt wirkungslosem Stärke-Regler (24.10.).
## godot --headless --path . -s res://tests/test_mal_hinweis.gd
var failures := 0
var checks := 0
func _initialize() -> void:
var panel = load("res://src/ui/panels/terrain_panel.gd")
_check(panel != null, "terrain_panel.gd lädt ohne Parse-Fehler")
var t: String = panel.paint_hint_text({"resolution": 129, "size_x_m": 256.0, "size_z_m": 256.0})
_check(t.contains("2 m"), "256 m / 129 Punkte → feinste Einheit 2 m (%s)" % t)
t = panel.paint_hint_text({"resolution": 129, "size_x_m": 1024.0, "size_z_m": 512.0})
_check(t.contains("8 m"), "1024 m / 129 Punkte → 8 m (größte Kante zählt)")
t = panel.paint_hint_text({})
_check(t.contains("Stärke gibt es hier nicht"), "ohne Terrain: neutraler Hinweis")
print("test_mal_hinweis: %d/%d ok" % [checks - failures, checks])
quit(1 if failures > 0 else 0)
func _check(cond: bool, label: String) -> void:
checks += 1
print("%s: %s" % ["ok " if cond else "FAIL", label])
if not cond:
failures += 1