extends Node2D
class_name Star
# Parametry ustawiane w Inspektorze (łatwe do edycji!)
@export var radius: float = 400.0 # Promień okręgu
@export var color: Color = Color.GRAY
@export var thickness: float = 0.5  # Grubość linii konturu
@export var segments: int = 64
@onready var label = $Label
@onready var system_owner = ""
@onready var station_scene = preload("res://scenes/station.tscn") # scena stacji kosmicznej
var has_station: bool = false
var station_sprite: Sprite2D = null

@export var star_name: String = ""
@export var planet_count: int = 0
var planets: Array = []
var texture: Texture2D

func _ready():
	#print("Gwiazda %s z %d planetami" % [star_name, planet_count])
	label.text = star_name
	var area = $Sprite2D/Area2D
	area.connect("input_event", Callable(self, "_on_area_input"))
# Stała do rysowania pełnego okręgu
const TAU = 6.2831853 # 2 * PI

# Funkcja _draw() jest automatycznie wywoływana przez Godot, aby narysować węzeł
func _draw():
	# draw_arc() rysuje kontur okręgu/łuku w Godot 4.x
	# Argumenty: centrum, promień, kąt początkowy (0), kąt końcowy (TAU), liczba segmentów, kolor, grubość
	draw_arc(
		Vector2.ZERO,
		radius,
		0.0,
		TAU,
		segments,
		color,
		thickness
	)
	
func _on_area_input(viewport, event, shape_idx):
	if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT and event.pressed:
		capture_system(PlayerData.PlayerName)
		print("System przejęty przez:", system_owner)

func capture_system(player_name: String) -> void:
	if system_owner != "":
		return # już przejęty
	system_owner = player_name

	# Dodaj stację kosmiczną obok gwiazdy
	var station = station_scene.instantiate()
	station.sname = "Stacja kosmiczna"
	station.position = position + Vector2(35, 0) # obok gwiazdy
	label.add_theme_color_override("font_color", Color(0.788, 0.332, 0.196, 1.0))
	get_parent().add_child(station)
