mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-10 16:04:04 +00:00
33 lines
810 B
GDScript
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
|