Move generator panel ui inside generator

This commit is contained in:
2026-03-20 00:50:49 +01:00
parent bcf228447d
commit 64e9fbbe6f
6 changed files with 61 additions and 52 deletions

View File

@@ -1,4 +1,5 @@
extends VBoxContainer
class_name GeneratorPanel
extends Container
const GENERATOR_BUFF_TILE_SCENE: PackedScene = preload("res://generator_buff_tile.tscn")
@@ -12,22 +13,25 @@ class BuffRow extends RefCounted:
@export var _generator: CurrencyGenerator
@onready var _buy_button: Button = $HBoxContainerGenerators/BuyOneButton
@onready var _buy_max_button: Button = $HBoxContainerGenerators/BuyMaxButton
@onready var _name_label: Label = $Label
@onready var _owned_value: Label = $GeneratorStatsGrid/OwnedValue
@onready var _next_cost_value: Label = $GeneratorStatsGrid/NextCostValue
@onready var _production_value: Label = $GeneratorStatsGrid/ProductionValue
@onready var _buffs_section: VBoxContainer = $BuffsSection
@onready var _buffs_list: VBoxContainer = $BuffsSection/BuffsList
@onready var _buy_button: Button = $VBoxContainer/HBoxContainerGenerators/BuyOneButton
@onready var _buy_max_button: Button = $VBoxContainer/HBoxContainerGenerators/BuyMaxButton
@onready var _name_label: Label = $VBoxContainer/Label
@onready var _owned_value: Label = $VBoxContainer/GeneratorStatsGrid/OwnedValue
@onready var _next_cost_value: Label = $VBoxContainer/GeneratorStatsGrid/NextCostValue
@onready var _production_value: Label = $VBoxContainer/GeneratorStatsGrid/ProductionValue
@onready var _buffs_section: VBoxContainer = $VBoxContainer/BuffsSection
@onready var _buffs_list: VBoxContainer = $VBoxContainer/BuffsSection/BuffsList
var _buff_rows: Array[BuffRow] = []
var _generator_id: StringName = &""
func _ready() -> void:
if _generator == null:
push_warning("GeneratorContainer '%s' has no generator assigned." % String(name))
return
_generator_id = _generator.get_generator_id()
_generator.purchase_completed.connect(_on_generator_updated)
_generator.production_tick.connect(_on_generator_updated)
_generator.purchase_failed.connect(_on_generator_updated)
@@ -62,18 +66,18 @@ func _on_generator_updated(_a = null, _b = null, _c = null, _d = null) -> void:
_refresh_generator_ui()
func _on_generator_state_changed(generator_id: StringName, _state: Dictionary) -> void:
if generator_id == _generator.get_generator_id():
if generator_id == _generator_id:
visible = true
_refresh_generator_ui()
func _on_generator_buff_level_changed(generator_id: StringName, _buff_id: StringName, _new_level: int) -> void:
if generator_id != _generator.get_generator_id():
if generator_id != _generator_id:
return
_refresh_generator_ui()
func _on_generator_buff_unlocked_changed(generator_id: StringName, _buff_id: StringName, _unlocked: bool) -> void:
if generator_id != _generator.get_generator_id():
if generator_id != _generator_id:
return
_refresh_generator_ui()