spaceship/GasGiantVisual.gd
2026-08-14 16:13:24 +02:00

31 lines
879 B
GDScript

extends Node2D
var gas_phase: float = 0.0
func configure(_shape_seed: int) -> void:
queue_redraw()
func extractor_anchor() -> Vector2:
return Vector2(0.0, -118.0)
func _process(delta: float) -> void:
gas_phase += delta
queue_redraw()
func _draw() -> void:
var rim := PackedVector2Array()
for i in range(32):
var angle := TAU * float(i) / 32.0
rim.append(Vector2(cos(angle) * 118.0, sin(angle) * 118.0))
NeonDraw.draw_glowing_polygon(self, rim, Color(0.4, 0.78, 1.0), 0.9)
for row in [-62.0, -28.0, 8.0, 43.0, 73.0]:
var band := PackedVector2Array()
var half_width: float = sqrt(maxf(0.0, 118.0 * 118.0 - row * row))
for i in range(15):
var x := lerpf(-half_width, half_width, float(i) / 14.0)
band.append(Vector2(x, row + sin(x * 0.045 + gas_phase * 1.6 + row) * 7.0))
NeonDraw.draw_glowing_path(self, band, Color(0.85, 0.52, 1.0), 0.75, 0.65)