class_name SceneManager extends Node2D var bulletArray =[] var totalAllowedBullets = 7 var bullet = preload("res://scenes/bullet.tscn") @onready var game: Node2D = $".." @onready var triggers: Node2D = $"../triggers" # Called when the node enters the scene tree for the first time. func _ready() -> void: if triggers: for obj in triggers.get_children(): if obj is Trigger: obj.areaTriggerSignal.connect(game._on_trigger) # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: pass # makes and recycles bullets func bulletFactory(): var myBullet:Bullet if bulletArray.size() < totalAllowedBullets: #make a new bullet myBullet = bullet.instantiate() myBullet.bulletDamageSignal.connect(game.bulletDamage) owner.add_child(myBullet) else: myBullet = bulletArray.pop_back() bulletArray.push_front(myBullet) return myBullet func makeBullet(position, speed): var someBullet = bulletFactory() someBullet.setSpeed(speed) # postition the bullet someBullet.transform = position