extends Panel @onready var name_label = $Name_Label @onready var info_label = $Info_Label @onready var buildings_container = $Buildings var planet: Planet = null func _process(delta: float) -> void: _update_info() func show_for_planet(p: Planet): planet = p name_label.text = p.pname _update_info() _create_building_buttons() show() func hide_panel(): hide() planet = null func _update_info(): if not planet: return # Tekst informacji wzorowany na print_data z Planet.gd var text = "🌍 %s\n" % planet.pname text += "Biosfera: %.2f (+%.2f)\n" % [planet.biosfere, planet.bonuses.get("biosfere", 0.0)] text += "Zasobność surowców: %.2f\n" % planet.res_rich text += "Limit populacji: %s\n" % GameData.format_number(planet.max_pop) text += "Populacja: %d\n" % int(planet.population) text += "Status: %s\n" % ("Skolonizowana" if planet.is_colonized else "Nieskolonizowana") # Surowce var has_any_resource = false for key in planet.resources.keys(): var res = planet.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) text += "%s: %.2f +(%s)\n" % [ display_name, round(res.get("amount",0)*100)/100.0, planet.check_growth() ] # Budynki if planet.buildings.size() > 0: text += "Budynki na planecie:\n" for b in planet.buildings: var data = BuildingsList.BUILDINGS[b.id] var status = tr("Under construction") if b.is_building else tr("ready") text += "- %s [%s]\n" % [tr(data.name), status] info_label.text = text func _create_building_buttons(): # Usuń stare przyciski for child in buildings_container.get_children(): child.queue_free() # Tworzymy nowe przyciski dla wszystkich budynków w definicjach for b_id in BuildingsList.BUILDINGS.keys(): var b_data = BuildingsList.BUILDINGS[b_id] var btn = TextureButton.new() btn.texture_normal = load(b_data.texture) #btn.stretch_mode = TextureButton.STRETCH_KEEP_ASPECT_COVERED #btn.ignore_texture_size = true btn.connect("pressed", Callable(self, "_on_building_pressed").bind(b_id)) buildings_container.add_child(btn) func _on_building_pressed(b_id): if not planet: return planet.add_building(b_id) _update_info() func _on_button_pressed() -> void: hide_panel()