newlon/scripts/gui/seedpacket/hotbar_handler.gd
2025-08-02 23:32:32 +05:00

32 lines
1,009 B
GDScript

extends SeedpacketHandler
## Seedpacket handler for hotbar plants.
class_name HotbarHandler
## Is current state valid for use?
var valid_state : bool = false
var enough_sun : bool = true
func _init(seedpacket : Seedpacket) -> void:
super._init(seedpacket)
LevelEventBus.state_changed.connect(on_level_state_changed)
LevelEventBus.sun_count_updated.connect(on_sun_count_updated)
func exit() -> void:
LevelEventBus.state_changed.disconnect(on_level_state_changed)
LevelEventBus.sun_count_updated.disconnect(on_sun_count_updated)
func is_avaiable():
return valid_state and enough_sun
func on_level_state_changed(state : LevelData.LevelStates):
valid_state = state == LevelData.LevelStates.PlantPick or state == LevelData.LevelStates.Game
if state == LevelData.LevelStates.Game:
enough_sun = LevelData.sun_count >= seedpacket.held_resource.cost
seedpacket.update_contents()
func on_sun_count_updated(to : float):
enough_sun = to >= seedpacket.held_resource.cost
seedpacket.update_contents()