39 lines
874 B
GDScript
39 lines
874 B
GDScript
extends TileMapLayer
|
|
|
|
@export var upgrade : PackedScene
|
|
|
|
@export var inventory : Control
|
|
|
|
var upgrades : Array[Upgrade]
|
|
|
|
@export var spawn_points : Array[Marker2D]
|
|
|
|
var working = false
|
|
|
|
func _process(delta):
|
|
if working:
|
|
if len(upgrades) < len(spawn_points):
|
|
add_upgrade()
|
|
|
|
func start():
|
|
working = true
|
|
enabled = true
|
|
|
|
func stop():
|
|
for upgrade in get_tree().get_nodes_in_group("upgrades"):
|
|
upgrade.queue_free()
|
|
upgrades.clear()
|
|
enabled = false
|
|
|
|
working = false
|
|
|
|
func add_upgrade():
|
|
var new_upgrade = upgrade.instantiate()
|
|
var random_spawn_point : Marker2D = spawn_points.pick_random()
|
|
while random_spawn_point.get_children() != []:
|
|
random_spawn_point = spawn_points.pick_random()
|
|
#new_upgrade.global_position = random_spawn_point.global_position
|
|
new_upgrade.inventory = inventory
|
|
random_spawn_point.add_child(new_upgrade)
|
|
upgrades.append(new_upgrade)
|