diff options
author | nokoe <nokoe@mailbox.org> | 2024-07-08 19:02:43 +0200 |
---|---|---|
committer | nokoe <nokoe@mailbox.org> | 2024-07-08 19:03:30 +0200 |
commit | e3ca09a6d8d288855e601135ba683ea06490ba48 (patch) | |
tree | 4653dc1369987684727576ad98b002edd7c1cf35 | |
parent | fa9856f0f7cf278efd1533dcd688435751370363 (diff) | |
download | hurrycurry-e3ca09a6d8d288855e601135ba683ea06490ba48.tar hurrycurry-e3ca09a6d8d288855e601135ba683ea06490ba48.tar.bz2 hurrycurry-e3ca09a6d8d288855e601135ba683ea06490ba48.tar.zst |
center only on players if possible
-rw-r--r-- | client/game.gd | 25 | ||||
-rw-r--r-- | client/menu/ingame.gd | 1 |
2 files changed, 20 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 diff --git a/client/menu/ingame.gd b/client/menu/ingame.gd index f8653411..6f1e40fe 100644 --- a/client/menu/ingame.gd +++ b/client/menu/ingame.gd @@ -28,6 +28,7 @@ func _ready(): lobby_button.disabled = game.in_lobby game.joined.connect(_on_game_joined) game.left.connect(_on_game_left) + update_button_text() super() func anim_setup(): pass |