Initial spawn delay
This commit is contained in:
parent
941912d7f1
commit
161f87da75
2 changed files with 28 additions and 9 deletions
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue