SpaceServer/Scripts/Arena.gd

45 lines
1.6 KiB
GDScript

extends Spatial
var players = {} # keys are String, values are Players
const Player = preload("res://Scenes/Player.tscn")
var tmp = false
func init() -> void:
yield(get_tree(), "idle_frame")
get_parent().console_print('Starting arena inilisation...')
for player_id in get_parent().ids:
get_parent().console_print('Placing player with id: ' + String(player_id))
players[player_id] = Player.instance()
players[player_id].set_name('player' + String(player_id))
add_child(players[player_id])
players[player_id].set_translation(generate_translation())
players[player_id].set_rotation(generate_rotation())
players[player_id].set_linear_velocity(Vector3.ZERO)
players[player_id].set_angular_velocity(Vector3.ZERO)
get_parent().console_print('Player Coords: ' + String(players[player_id].get_translation()) + String(players[player_id].get_rotation()) )
rpc('place_player', player_id, players[player_id].get_translation(), players[player_id].get_rotation())
players[player_id].init()
func _process(delta : float) -> void:
var all_ready = true
for player in players.values():
if !player.is_ready and !player.has_died:
all_ready = false
if all_ready:
for player in players.values():
if player.is_alive:
player.is_ready = false
player.calculate_plans()
func generate_translation() -> Vector3:
#return Vector3(rand_range(-10,10),rand_range(-10,10),rand_range(-10,10))
return Vector3(0,0,rand_range(-10,10))
func generate_rotation() -> Vector3:
#return Vector3(rand_range(-1,1),rand_range(-1,1),rand_range(-1,1)).normalized()
return Vector3(0,0,0)
func play_full_plans():
for player in players.values():
player.play_full_plan()