64 lines
2.0 KiB
GDScript

extends Node3D
const SPAWN_RANDOM := 5.0
var player_side: String
@export var player : PackedScene
@onready var intro_camera = $Intro/CameraMount/IntroCamera
@onready var intro_view_port = $Intro/CameraMount/IntroCamera/SubViewportContainer/SubViewport
@onready var spawns = $Spawns
@onready var root = $'.'
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
print("level ready")
if not multiplayer.is_server():
return
multiplayer.peer_connected.connect(add_player)
multiplayer.peer_disconnected.connect(del_player)
for id in multiplayer.get_peers():
add_player(id)
if not OS.has_feature("dedicated_server"):
add_player(1)
var char : Node3D = null
var red_spawn: Node3D = $Spawns/Blue/SpawnArea
var position := red_spawn.global_position
#for i in ServerManager.Players:
#print("spawning player")
#char = ResourceLoader.load("res://scenes/utils/character.tscn").instantiate()
#var my_random_number = RandomNumberGenerator.new().randf_range(-2.0, 2.0)
#char.name = str(my_random_number)
#char.global_position = position
#char.global_position.x += my_random_number
#char.add_to_group("players", true)
#root.add_child(char)
#for nodes in get_children():
#print(nodes)
func add_player(id: int):
print("add player")
var character = ResourceLoader.load("res://scenes/utils/character.tscn").instantiate()
#character.player = id
var pos := Vector2.from_angle(randf() * 2 * PI)
character.position = Vector3(pos.x * SPAWN_RANDOM * randf(), 0, pos.y * SPAWN_RANDOM * randf())
character.name = str(id)
$Players.add_child(character, true)
func del_player(id: int):
if not $Players.has_node(str(id)):
return
$Players.get_node(str(id)).queue_free()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
#print(ServerManager.get_players())
pass
func _exit_tree() -> void:
if not multiplayer.is_server():
return
multiplayer.peer_connected.disconnect(add_player)
multiplayer.peer_disconnected.disconnect(del_player)