summaryrefslogtreecommitdiff
path: root/map/camera.gd
diff options
context:
space:
mode:
authorDaniel Weipert <git@mail.dweipert.de>2025-03-10 18:22:09 +0100
committerDaniel Weipert <git@mail.dweipert.de>2025-03-10 18:22:09 +0100
commit440020e642f539079867577435a9f8b02075699b (patch)
tree99acccfc1574a8ffc656d6f64ff934949edb1f52 /map/camera.gd
initial commitHEADmain
Diffstat (limited to 'map/camera.gd')
-rw-r--r--map/camera.gd22
1 files changed, 22 insertions, 0 deletions
diff --git a/map/camera.gd b/map/camera.gd
new file mode 100644
index 0000000..f433157
--- /dev/null
+++ b/map/camera.gd
@@ -0,0 +1,22 @@
+extends Camera2D
+
+
+@export var limit_tile_map: TileMapLayer
+
+
+func _ready() -> void:
+ if limit_tile_map:
+ var tile_size := limit_tile_map.tile_set.tile_size
+
+ limit_top = limit_tile_map.get_used_rect().position.y * tile_size.y
+ limit_bottom = limit_tile_map.get_used_rect().end.y * tile_size.y
+ limit_left = limit_tile_map.get_used_rect().position.x * tile_size.x
+ limit_right = limit_tile_map.get_used_rect().end.x * tile_size.x
+
+ var difference := Vector2i(get_viewport_rect().size) - limit_tile_map.get_used_rect().size * tile_size
+ if difference.x > 0:
+ limit_left -= int(difference.x * 0.5)
+ limit_right += int(difference.x * 0.5)
+ if difference.y > 0:
+ limit_top -= int(difference.x * 0.5)
+ limit_bottom += int(difference.x * 0.5)