42 lines
1.1 KiB
GDScript
42 lines
1.1 KiB
GDScript
extends Resource
|
|
class_name SectorData
|
|
|
|
var id = ""
|
|
var name = ""
|
|
var position = Vector2.ZERO
|
|
var owner = null
|
|
var texture = ""
|
|
var planets: Array = []
|
|
|
|
# Funkcja statyczna tworząca listę sektorów
|
|
static func generate_sectors(sector_count: int) -> Array:
|
|
var sectors_list: Array = []
|
|
var min_distance = 100 # minimalna odległość między sektorami
|
|
|
|
for i in range(sector_count):
|
|
var s = SectorData.new()
|
|
s.id = "sector_" + str(i)
|
|
s.name = ObjectNames.sector_names[randi() % ObjectNames.sector_names.size()]
|
|
|
|
var pos_ok = false
|
|
var new_pos = Vector2.ZERO # <- deklaracja zmiennej przed while
|
|
while not pos_ok:
|
|
new_pos = Vector2(randi() % 1000, randi() % 600)
|
|
pos_ok = true
|
|
for existing in sectors_list:
|
|
if existing.position.distance_to(new_pos) < min_distance:
|
|
pos_ok = false
|
|
break
|
|
s.position = new_pos
|
|
|
|
s.texture = random_star_texture()
|
|
s.planets = PlanetData.generate_planets()
|
|
|
|
sectors_list.append(s)
|
|
return sectors_list
|
|
|
|
|
|
static func random_star_texture() -> Texture2D:
|
|
var id = randi_range(1, 8)
|
|
return load("res://assets/stars/s%d.png" % id)
|