# This file is part of open-fpsz. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . extends Node ## The list of available maps. ## @experimental @export var maps : Array[PackedScene] ## @experimental var current_map : Terrain3D = null: set(new_map): if current_map != null: current_map.queue_free() current_map = new_map ## @experimental func get_player_spawn() -> Node3D: if not current_map or not current_map.has_node("PlayerSpawns"): return null var spawns : Node = current_map.get_node("PlayerSpawns") if spawns: var child_count : int = spawns.get_child_count() return spawns.get_child( randi_range(0, child_count - 1 if child_count else 0)) return null