Initial spawn delay

This commit is contained in:
Rendo 2025-08-03 18:51:27 +05:00
commit 161f87da75
2 changed files with 28 additions and 9 deletions

View file

@ -1,12 +1,10 @@
extends Node
const SEEDPACKET_SCENE := preload("res://scenes/gui/seedpacket.tscn")
func _ready() -> void:
var plants = GameRegistry.load_resources("res://resources/")
for plant in plants:
var seedpacket = SEEDPACKET_SCENE.instantiate()
var seedpacket = Seedpacket.PACKED_SCENE.instantiate()
seedpacket.held_resource = plant
add_child(seedpacket)

View file

@ -4,6 +4,8 @@ extends AspectRatioContainer
class_name Seedpacket
const PACKED_SCENE := preload("uid://bi4c34ii72y46")
@onready var button : TextureButton = $TextureButton
@onready var cost_label : Label = $TextureButton/Cost
@onready var preview_texture : TextureRect = $TextureButton/PreviewContainer/Preview
@ -15,18 +17,22 @@ class_name Seedpacket
var held_resource : SeedpacketResource
var handler : SeedpacketHandler
#region Virtuals
func _ready() -> void:
focus_exited.connect(on_focus_exited)
LevelEventBus.state_changed.connect(on_level_state_changed)
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)
#endregion
func set_resource(to : SeedpacketResource):
held_resource = to
recharge_timer.wait_time = held_resource.recharge_time
func set_handler(to : SeedpacketHandler):
if handler:
@ -40,6 +46,14 @@ func update_contents():
availability.visible = handler.is_avaiable() == false
handler.on_updated_contents()
#region Signal recievers
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 on_packet_placed(packet : SeedpacketResource):
if held_resource != packet: return
recharge_timer.start()
@ -51,3 +65,10 @@ func disconnect_placement():
func on_focus_exited():
LevelEventBus.packet_deselected.emit(held_resource)
func on_level_state_changed(state : LevelData.LevelStates):
if state == LevelData.LevelStates.Game:
# Recharge with set wait time
recharge_timer.start(held_resource.recharge_time * held_resource.initial_recharge_percent)
recharge_timer.wait_time = held_resource.recharge_time
#endregion