diff options
Diffstat (limited to 'client/game.gd')
| -rw-r--r-- | client/game.gd | 25 | 
1 files changed, 19 insertions, 6 deletions
| diff --git a/client/game.gd b/client/game.gd index b6646407..8fe150e6 100644 --- a/client/game.gd +++ b/client/game.gd @@ -273,10 +273,23 @@ func set_tile(tile: Vector2i, kind = null, neighbors = null):  	map.set_tile(tile, tile_names[kind], neighbors)  func update_center(): -	var players_count := players.size() -	var new_center := Vector3(0, 0, 0) -	for p in players.values(): -		new_center += p.position -	if players_count > 0: -		new_center /= players_count +	if is_joined: +		return +	var sum: int = 0 +	var player_sum: int = 0 +	var center: Vector3 = Vector3(0., 0., 0.) +	var player_center: Vector3 = Vector3(0., 0., 0.) +	for v in players.values(): +		var p: Player = v +		if p.character_idx >= 0: +			player_sum += 1 +			player_center += p.position +		sum += 1 +		center += p.position + +	var new_center: Vector3 = Vector3(0., 0., 0.) +	if player_sum > 0: +		new_center = player_center / player_sum +	elif sum > 0: +		new_center = center / sum  	$Center.position = new_center | 
