extends AspectRatioContainer ## Class that allows player to choose SeedpacketResource class_name Seedpacket @onready var button := $TextureButton @onready var preview :=$TextureButton/PreviewContainer/Preview @onready var cost := $TextureButton/Cost @onready var avaibility := $TextureButton/AvaiabilityRect @onready var recharge_timer := $RechargeTimer @onready var forbidden_rect := $TextureButton/Forbidden @onready var locked_rect := $TextureButton/Locked var held_resource : SeedpacketResource var handler : SeedpacketHandler func _process(_delta: float) -> void: button.disabled = recharge_timer.time_left > 0 or handler.is_avaiable() == false func on_pressed(): LevelEventBus.packet_selected.emit(held_resource) if LevelEventBus.packet_placed.is_connected(on_packet_placed) == false: LevelEventBus.packet_placed.connect(on_packet_placed) focus_exited.connect(disconnect_placement) func set_handler(to : SeedpacketHandler): if handler: handler.exit() handler = to update_contents() func update_contents(): cost.text = str(held_resource.cost) preview.texture = held_resource.preview avaibility.visible = handler.is_avaiable() == false handler.on_updated_contents() func on_packet_placed(packet : SeedpacketResource): if held_resource != packet: return disconnect_placement() func disconnect_placement(): LevelEventBus.packet_placed.disconnect(on_packet_placed) focus_exited.disconnect(disconnect_placement)