ArkSol/scripts/SectorData.gd

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)