Files
SpaceBots/random_minigame_spawner.gd

36 lines
1.3 KiB
GDScript3
Raw Permalink Normal View History

2026-01-21 23:40:20 +01:00
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()