ArkSol/scripts/planet.gd
Tirith 14d03465a9 Parallax background
Zmiany w skalowaniu gwiazd przy zoom
2025-10-31 17:04:55 +01:00

63 lines
1.4 KiB
GDScript

extends Node2D
class_name Planet
@onready var label = $Label
@onready var info_label = $CanvasLayer/Info
@onready var area = $Area2D
var pname: String = ""
var orbit_radius: float = 30.0
var orbit_speed: float = 0.01
var biosfere: float = 0.1
var resources := {}
var texture: Texture2D
var angle = randf() * TAU
func _ready():
add_to_group("planets")
# Podłącz sygnały
area.mouse_entered.connect(_on_mouse_entered)
area.mouse_exited.connect(_on_mouse_exited)
#str(round(biosfere * 100) / 100.0)
_update_position()
func _process(delta):
angle += orbit_speed * delta # obrót w czasie
angle = fmod(angle, TAU) # utrzymanie kąta w 0..2π
_update_position()
label.text = str(pname)
func _update_position():
# pozycja lokalna względem gwiazdy
position = Vector2(cos(angle), sin(angle)) * orbit_radius
func _on_mouse_entered():
info_label.visible = true
var text = "🌍 %s\n" % pname
text += "Biosfera: %.2f\n" % biosfere
var has_any_resource = false
for key in resources.keys():
var res = resources[key]
if res.has("exist") and res["exist"]:
if not has_any_resource:
text += "Zasoby:\n"
has_any_resource = true
var display_name = tr(key) # tłumaczenie klucza przez system Godot
text += "%s:%s\n" % [display_name, str(res.get("amount", 0))]
info_label.text = text
func _on_mouse_exited():
info_label.visible = false