space_empire/scripts/galaxy.gd
Tomasz Boruc aa4b9452d5 0.1-0002
Losowanie pozycji gwiazd w galaktyce
2025-10-19 17:37:41 +02:00

65 lines
1.9 KiB
GDScript

extends Control
@export var SectorScenePath: String = "res://scenes/Sector.tscn"
@onready var container = $VBoxContainer
func _ready():
_init_background()
_create_sector_buttons()
# --- TWORZENIE GWIAZD SEKTORÓW ---
func _create_sector_buttons():
for child in container.get_children():
child.queue_free()
var screen_size = get_viewport_rect().size
for i in range(Manager.SECTOR_COUNT):
var sector_info = Manager.get_sector(i)
var button = TextureButton.new()
button.texture_normal = preload("res://assets/stars/s1.png")
button.stretch_mode = TextureButton.STRETCH_KEEP_ASPECT_CENTERED
# 🎨 Losowy rozmiar gwiazdy
button.scale = Vector2(sector_info["star_scale"], sector_info["star_scale"])
# Pozycja z Managera
button.position = sector_info["position"]
# Podpis sektora
var sector_label = Label.new()
sector_label.text = sector_info["name"]
sector_label.add_theme_font_size_override("font_size", 350) # malutki podpis
sector_label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
sector_label.position = Vector2(0, -450)
button.add_child(sector_label)
var index = i
button.pressed.connect(func() -> void:
_on_sector_selected(index)
)
container.add_child(button)
# --- WYBRANIE SEKTORA ---
func _on_sector_selected(index: int):
Manager.current_sector = index
var sector_scene = load(SectorScenePath)
get_tree().change_scene_to_packed(sector_scene)
# --- TŁO ---
func _init_background():
var background = Sprite2D.new()
background.texture = load("res://assets/background/galaxy_background.jpg")
background.centered = true
background.position = get_viewport_rect().size / 2
var screen_size = get_viewport_rect().size
var tex_size = background.texture.get_size()
var scale_factor = max(screen_size.x / tex_size.x, screen_size.y / tex_size.y)
background.scale = Vector2(scale_factor, scale_factor)
add_child(background)
background.z_index = -10