diff --git a/planets/BlackHoleVisual.gd b/planets/BlackHoleVisual.gd index ab0cb0e..ea664ac 100644 --- a/planets/BlackHoleVisual.gd +++ b/planets/BlackHoleVisual.gd @@ -26,7 +26,12 @@ var _rings: Array = [] func _ready() -> void: - _build() + # Planet.gd calls configure() BEFORE add_child(), so the disc is usually + # already built by the time _ready fires (which the SceneTree defers to + # the first frame). Without this guard the ring set was thrown away and + # re-tessellated - eighty antialiased polylines per spawn instead of forty. + if _rings.is_empty(): + _build() func configure(_shape_seed: int) -> void: