56 lines
1.4 KiB
GDScript
56 lines
1.4 KiB
GDScript
# Plik: res://scripts/GameData.gd
|
|
extends Node
|
|
#class_name GameData
|
|
|
|
# Ładowanie kontenera klas danych
|
|
const CLASSES = preload("res://scripts/GameClasses.gd")
|
|
|
|
# Ustawienie aliasów dla czytelności
|
|
const PlanetDataClass = CLASSES.PlanetData
|
|
const StarDataClass = CLASSES.StarData
|
|
|
|
# --- GLOBALNY STAN GRY ---
|
|
var sectors: Array[StarDataClass] = []
|
|
# ... (reszta kodu) ...
|
|
|
|
# === FUNKCJE GENERUJĄCE GALAKTYKĘ ===
|
|
|
|
func _ready():
|
|
# ... (logika inicjalizacji)
|
|
generate_galaxy()
|
|
print(sectors[0].planets[0].name)
|
|
|
|
func generate_galaxy():
|
|
sectors.clear() # na wszelki wypadek, żeby nie duplikować
|
|
for i in range(2):
|
|
var new_sector_data = StarDataClass.new()
|
|
|
|
# --- Pozycja gwiazdy w przestrzeni galaktyki ---
|
|
new_sector_data.position = Vector2(
|
|
randf_range(0, 400), # szerokość galaktyki
|
|
randf_range(0, 400)
|
|
)
|
|
|
|
new_sector_data.randomize_properties()
|
|
new_sector_data.planets = generate_planets_for_sector()
|
|
|
|
sectors.append(new_sector_data)
|
|
|
|
|
|
func generate_planets_for_sector() -> Array:
|
|
var planets_list: Array = []
|
|
var planet_count = randi_range(2, 2)
|
|
|
|
for i in range(planet_count):
|
|
var p = PlanetDataClass.new()
|
|
p.name = "Planeta %d" % (i + 1)
|
|
p.randomize_properties()
|
|
|
|
# --- Ustal promień orbity i kąt ---
|
|
p.orbit_radius = (i + 1) * randf_range(100.0, 200.0)
|
|
p.angle = randf_range(0.0, TAU)
|
|
|
|
planets_list.append(p)
|
|
|
|
return planets_list
|