33 lines
962 B
GDScript
33 lines
962 B
GDScript
# Plik: res://scripts/Planet.gd
|
|
extends Node2D
|
|
class_name Planet
|
|
|
|
# Brak zagnieżdżonej klasy. Dane będą przypisane z GameData
|
|
var data = null
|
|
|
|
@onready var sprite: Sprite2D = $Sprite2D
|
|
|
|
# --- Właściwości ruchu (będą pobierane z 'data') ---
|
|
var orbit_center: Vector2 = Vector2.ZERO
|
|
var angle: float = 0.0
|
|
|
|
func _ready():
|
|
_apply_visuals()
|
|
# Tutaj w _ready synchronizujemy dane orbitalne
|
|
|
|
func _apply_visuals():
|
|
# Sprawdza, czy 'data' jest obiektem i ma ścieżkę do tekstury
|
|
if is_instance_valid(data) and data.texture_path != "":
|
|
var planet_texture = load(data.texture_path)
|
|
if planet_texture and sprite:
|
|
sprite.texture = planet_texture
|
|
|
|
func _process(delta):
|
|
# Logika ruchu orbitalnego, używająca danych z 'data'
|
|
if is_instance_valid(data) and data.orbit_radius > 0:
|
|
|
|
data.angle += data.rotation_speed * delta
|
|
|
|
var offset = Vector2(cos(data.angle), sin(data.angle)) * data.orbit_radius
|
|
self.position = orbit_center + offset
|