29 lines
1.0 KiB
GDScript
29 lines
1.0 KiB
GDScript
extends Node2D
|
|
# sector.gd - spawns a star and several planets and connects signals
|
|
|
|
@export var planet_scene: PackedScene = preload("res://scenes/planet.tscn")
|
|
|
|
func _ready():
|
|
# create a simple star visual (Circle) - using a Node2D as placeholder
|
|
var star = Node2D.new()
|
|
star.name = "StarSprite"
|
|
star.position = Vector2(480, 240)
|
|
add_child(star)
|
|
# Spawn planets
|
|
for i in range(3):
|
|
var p = planet_scene.instantiate()
|
|
p.name = "Planet_%d" % i
|
|
var angle = i * (PI * 2 / 3)
|
|
var radius = 160
|
|
p.position = Vector2(480,240) + Vector2(cos(angle), sin(angle)) * radius
|
|
add_child(p)
|
|
p.connect("planet_selected", Callable(self, "_on_planet_selected"))
|
|
|
|
func _on_planet_selected(planet):
|
|
# find the PlanetMenu in the scene tree and open it
|
|
var ui = get_tree().get_root().get_node("Main/UI/PlanetMenu") if get_tree().get_root().has_node("Main/UI/PlanetMenu") else null
|
|
if ui:
|
|
ui.open_for(planet)
|
|
else:
|
|
print("PlanetMenu not found, but selected: ", planet.name)
|