Files
CosmicClash/Game/scripts/arena.gd
T

33 lines
810 B
GDScript

class_name Arena
extends Node3D
# A reusable stadium: terrain, lighting, environment, two team goals, and
# spawn markers. An arena holds no rules and no state — game modes query it
# for spawn transforms and goals, then spawn ships/ball themselves.
func _ready():
add_to_group("arena")
func get_ball_spawn() -> Transform3D:
return $BallSpawn.global_transform
func get_ship_spawns(team: int) -> Array[Transform3D]:
var spawns: Array[Transform3D] = []
var container := get_node_or_null("SpawnsTeam%d" % team)
if container:
for child in container.get_children():
if child is Marker3D:
spawns.append(child.global_transform)
return spawns
func get_goals() -> Array[Goal]:
var goals: Array[Goal] = []
for child in get_children():
if child is Goal:
goals.append(child)
return goals