64 lines
2.0 KiB
GDScript
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)
|