36 lines
1.3 KiB
Plaintext
36 lines
1.3 KiB
Plaintext
extends Node
|
|
|
|
@export var noMinigame: int = 0 ##Number of slots in the minigame array that spawn no minigame. One of the slots is randomly chosen, meaning a higher number makes no minigame more likely.
|
|
@export var NoMinigamePreload: String = "res://Spaceship/Objects/noObject.tscn"
|
|
@export var loadingBarMinigame: bool = false
|
|
@export var loadingBarMinigamePreload: String = "res://Spaceship/Objects/noObject.tscn"
|
|
|
|
@export var Parent: Node
|
|
var minigamesArray: Array
|
|
var rng = RandomNumberGenerator.new()
|
|
|
|
|
|
func _ready() -> void:
|
|
for x in noMinigame:
|
|
minigamesArray.push_back(NoMinigamePreload)
|
|
if loadingBarMinigame:
|
|
minigamesArray.push_back(loadingBarMinigamePreload)
|
|
|
|
|
|
#Choose and Spawn minigame
|
|
var spaceship = get_node("/root/Main/Maps/Spaceship")
|
|
var objectReference = load(minigamesArray[rng.randi_range(0,minigamesArray.size()-1)]) #Get random Object depending on weights
|
|
var ObjectInstance = objectReference.instantiate()
|
|
|
|
if Parent:
|
|
Parent.call_deferred("add_child",ObjectInstance) #Adds Object instance
|
|
elif spaceship:
|
|
spaceship.call_deferred("add_child",ObjectInstance)
|
|
else:
|
|
push_error("Object Spawner failed to spawn object because of missing parent node")
|
|
|
|
ObjectInstance.rotation = self.global_rotation
|
|
ObjectInstance.position = self.global_position
|
|
|
|
self.queue_free()
|