summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-06-06 18:47:51 +0200
committermetamuffin <metamuffin@disroot.org>2025-06-06 18:48:32 +0200
commit90bc0f0a870bb071da3390cf299f999e0073d12f (patch)
tree2cdbb9359fe39281a894d64af5a1df8a1df63edb
parent215650b4cbe242cedb19ab3d096e47c653563263 (diff)
downloadhurrycurry-90bc0f0a870bb071da3390cf299f999e0073d12f.tar
hurrycurry-90bc0f0a870bb071da3390cf299f999e0073d12f.tar.bz2
hurrycurry-90bc0f0a870bb071da3390cf299f999e0073d12f.tar.zst
fix a few logic bugs in spectate_center
-rw-r--r--client/game.gd19
1 files changed, 10 insertions, 9 deletions
diff --git a/client/game.gd b/client/game.gd
index 849f970b..aff4d984 100644
--- a/client/game.gd
+++ b/client/game.gd
@@ -409,21 +409,22 @@ func update_center():
spectate_free()
func spectate_center():
- var no_chefs = true
+ var any_chefs = false
for v in players.values():
- no_chefs = no_chefs or v.is_chef
+ any_chefs = any_chefs or v.is_chef
+ var no_chefs = not any_chefs
var sum: int = 0
var center: Vector3 = Vector3(0.,0.,0.)
- for v in players.values():
- var p: Player = v
- sum += 1
- center += p.movement_base.position
+ for p in players.values():
+ if p.is_chef or no_chefs:
+ sum += 1
+ center += p.movement_base.position
var bmin = Vector2.INF
var bmax = -Vector2.INF
for p in players.values():
- if !p.is_customer or no_chefs:
+ if p.is_chef or no_chefs:
bmin.x = min(bmin.x, p.movement_base.position.x)
bmin.y = min(bmin.y, p.movement_base.position.z)
bmax.x = max(bmax.x, p.movement_base.position.x)
@@ -432,10 +433,10 @@ func spectate_center():
if sum > 0:
$Center.position = center / sum
- $FollowCamera.camera_distance_target = max(extent * 2, 5)
+ $FollowCamera.camera_distance_target = max(extent * 2, 8)
elif sum > 0:
$Center.position = center / sum
- $FollowCamera.camera_distance_target = max(extent * 2, 5)
+ $FollowCamera.camera_distance_target = max(extent * 2, 8)
else:
var extents = map.extents()
var map_center = ((extents[0] + extents[1]) / 2) + Vector2(.5, .5)