59 lines
1.9 KiB
GDScript
59 lines
1.9 KiB
GDScript
extends Node2D
|
|
class_name Star
|
|
# Parametry ustawiane w Inspektorze (łatwe do edycji!)
|
|
@export var radius: float = 500.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)
|