extends Node2D const DEBRIS := preload("res://scripts/game/asteroid_destruction_effect.gd") const TEXTURES := preload("res://scripts/levels/exploration_poi.gd").ASTEROID_TEXTURES func _ready() -> void: var count := 0 for texture in TEXTURES.values(): var sprite := Sprite2D.new() sprite.texture = texture sprite.scale = Vector2.ONE * 78.0 / maxf(texture.get_width(), texture.get_height()) add_child(sprite) for sample in 100: var effect := Node2D.new() effect.set_script(DEBRIS) effect.call("configure", sprite) assert(effect.get("_fragments").size() == 16) for fragment in effect.get("_fragments"): assert(fragment["points"].size() == fragment["uv"].size()) assert(not Geometry2D.triangulate_polygon(fragment["points"]).is_empty()) count += 1 effect.free() sprite.free() print("ASTEROID_DEBRIS_GEOMETRY_TEST: PASS (%d fragments across all five ore textures; triangulation and UVs valid)" % count) get_tree().quit()