aboutsummaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authornokoe <nokoe@mailbox.org>2024-07-11 15:50:07 +0200
committernokoe <nokoe@mailbox.org>2024-07-11 15:52:43 +0200
commit51f3c580fcfac8d37e5e345031cadda141f0340f (patch)
treec591be9a59785844cb6ee302fcf88d7f397bf719 /client
parent9924f88d35e504dae8dee0e0ca55efd45b2323ad (diff)
downloadhurrycurry-51f3c580fcfac8d37e5e345031cadda141f0340f.tar
hurrycurry-51f3c580fcfac8d37e5e345031cadda141f0340f.tar.bz2
hurrycurry-51f3c580fcfac8d37e5e345031cadda141f0340f.tar.zst
correct extents, set camera target to map center when no players are connected
Diffstat (limited to 'client')
-rw-r--r--client/game.gd4
-rw-r--r--client/map/map.gd25
2 files changed, 19 insertions, 10 deletions
diff --git a/client/game.gd b/client/game.gd
index 2006d4c8..acbe7286 100644
--- a/client/game.gd
+++ b/client/game.gd
@@ -290,4 +290,8 @@ func update_center():
new_center = player_center / player_sum
elif sum > 0:
new_center = center / sum
+ else:
+ var extents = map.extents()
+ var map_center = ((extents[0] + extents[1]) / 2) + Vector2(.5, .5)
+ new_center = Vector3(map_center.x, 0., map_center.y)
$Center.position = new_center
diff --git a/client/map/map.gd b/client/map/map.gd
index e0fc091e..112ddbcc 100644
--- a/client/map/map.gd
+++ b/client/map/map.gd
@@ -68,20 +68,25 @@ func gi_bake():
gi_bake_blocking()
func gi_bake_blocking():
- var extent_min = Vector2(0,0)
- var extent_max = Vector2(0,0)
- for e in tile_by_pos.values():
- extent_min.x = min(extent_min.x, e[0].x) - 0.5
- extent_min.y = min(extent_min.y, e[0].y) - 0.5
- extent_max.x = max(extent_max.x, e[0].x) + 0.5
- extent_max.y = max(extent_max.y, e[0].y) + 0.5
-
+ var map_extents = extents()
+ var extent_min = map_extents[0]
+ var extent_max = map_extents[1]
var center = (extent_max + extent_min) / 2
var size = extent_max - extent_min
- voxelgi.position = Vector3(center.x, 2, center.y)
- voxelgi.size = Vector3(size.x, 5., size.y)
+ voxelgi.position = Vector3(center.x, 3., center.y)
+ voxelgi.size = Vector3(size.x, 8., size.y)
print("Baking now!")
var start = Time.get_ticks_msec()
voxelgi.bake()
voxelgi.visible = true
print("Bake done. elapsed=", Time.get_ticks_msec() - start)
+
+func extents() -> Array:
+ var extent_min = Vector2(0,0)
+ var extent_max = Vector2(0,0)
+ for e in tile_by_pos.values():
+ extent_min.x = min(extent_min.x, e[0].x)
+ extent_min.y = min(extent_min.y, e[0].y)
+ extent_max.x = max(extent_max.x, e[0].x)
+ extent_max.y = max(extent_max.y, e[0].y)
+ return [extent_min, extent_max + Vector2(1., 1.)]