38 lines
1,016 B
GDScript
38 lines
1,016 B
GDScript
extends Node2D
|
|
class_name BeeSpawner
|
|
|
|
var bee = preload("res://entities/Bee.tscn")
|
|
|
|
@onready var beehive = get_node("../Beehive")
|
|
@onready var bee_sound = get_node("BigBeeSound")
|
|
@onready var small_bee_sound = get_node("BeeSound")
|
|
|
|
var bee_count : int = 0
|
|
var max_bees : int = 100
|
|
var spawn_interval : float = 0.5
|
|
var spawn_timer : float = 0.0
|
|
var bee_sound_timer : float = 0.0
|
|
|
|
func spawn_bee():
|
|
var bee_instance = bee.instantiate()
|
|
add_child(bee_instance)
|
|
bee_instance.position = beehive.global_position
|
|
|
|
func _process(delta):
|
|
spawn_timer += delta
|
|
|
|
if spawn_timer > spawn_interval and bee_count < max_bees and beehive.dancer_in_range:
|
|
spawn_bee()
|
|
spawn_timer = 0.0
|
|
bee_count += 1
|
|
Log.pr("Bee count: " + str(bee_count))
|
|
|
|
if bee_count > 0 and small_bee_sound.playing == false:
|
|
small_bee_sound.play()
|
|
|
|
func _physics_process(delta):
|
|
bee_sound_timer += delta
|
|
if bee_sound_timer > 1.0 and bee_count > 0:
|
|
bee_sound_timer = 0.0
|
|
if randf() > 0.9 and bee_sound.playing == false:
|
|
bee_sound.play()
|