45 lines
1.6 KiB
GDScript
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()
|