63 lines
1.6 KiB
GDScript
63 lines
1.6 KiB
GDScript
# Plik: Galaxy.gd
|
|
extends Node2D
|
|
|
|
func _ready():
|
|
var sectors = GameData.sectors
|
|
_spawn_sectors(sectors)
|
|
|
|
func _spawn_sectors(sectors: Array):
|
|
for sector in sectors:
|
|
|
|
var star_button = TextureButton.new()
|
|
star_button.set_meta("sector_data", sector)
|
|
|
|
star_button.texture_normal = sector.texture
|
|
star_button.position = sector.position
|
|
|
|
star_button.scale = Vector2(0.02, 0.02)
|
|
|
|
if sector.texture:
|
|
var size = sector.texture.get_size()
|
|
star_button.custom_minimum_size = size
|
|
star_button.size = size
|
|
|
|
add_child(star_button)
|
|
|
|
star_button.pressed.connect(_on_star_clicked.bind(star_button))
|
|
|
|
var name_label = Label.new()
|
|
name_label.text = sector.name
|
|
name_label.position = star_button.position + Vector2(-20, 20)
|
|
add_child(name_label)
|
|
|
|
var name_label2 = Label.new()
|
|
name_label2.text = sector.planets[0].name
|
|
name_label2.position = star_button.position + Vector2(-20, 40)
|
|
add_child(name_label2)
|
|
|
|
|
|
func _on_star_clicked(star_button_node: TextureButton):
|
|
var clicked_sector_data = star_button_node.get_meta("sector_data")
|
|
|
|
if clicked_sector_data:
|
|
open_sector_view(clicked_sector_data)
|
|
else:
|
|
push_error("Błąd: Nie znaleziono danych sektora w przycisku.")
|
|
|
|
|
|
func open_sector_view(data):
|
|
|
|
GameData.selected_sector_data = data
|
|
|
|
var error = get_tree().change_scene_to_file("res://scenes/sector.tscn")
|
|
|
|
if error != OK:
|
|
push_error("BŁĄD ZMIANY SCENY: Nie udało się załadować res://scenes/sector.tscn. Sprawdź ścieżkę i plik.")
|
|
else:
|
|
print("Przeniesiono do widoku sektora:", data.name)
|
|
|
|
|
|
func _input(event):
|
|
if event.is_action_pressed("ui_cancel"):
|
|
get_tree().change_scene_to_file("res://scenes/Menu.tscn")
|