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 print(planets) # 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)