26 lines
964 B
GDScript
26 lines
964 B
GDScript
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()
|