summaryrefslogtreecommitdiff
path: root/Start.gd
blob: e7b08963d681c868066c7274176eae53a7bc3d84 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
extends Node2D


var drag_anchor = Vector2(0,0)

# todo: set camera base limit and adjust based on zoom


func _input(event):
	if event.is_action_pressed("ui_cancel"):
		if %Tray.is_open:
			%Tray.close()
		else:
			%Tray.open()
	
	if event.is_action_pressed("drag_screen"):
		drag_anchor = get_global_mouse_position()
	
	if event is InputEventMouseButton:
		if event.is_pressed():
			if event.button_index == MOUSE_BUTTON_WHEEL_UP:
				var zoom = min(%Viewport/Camera2D.zoom.x + 0.1, 2)
				%Viewport/Camera2D.zoom = Vector2(zoom, zoom)
			if event.button_index == MOUSE_BUTTON_WHEEL_DOWN:
				var zoom = max(%Viewport/Camera2D.zoom.x - 0.1, 1)
				%Viewport/Camera2D.zoom = Vector2(zoom, zoom)


func _process(_delta):
	if Input.is_action_pressed("drag_screen"):
		%Viewport.position += drag_anchor - get_global_mouse_position()
		%Viewport.position.x = min(%Viewport.position.x, %Viewport/Camera2D.limit_right - get_viewport_rect().size.x/2)
		%Viewport.position.x = max(%Viewport.position.x, %Viewport/Camera2D.limit_left + get_viewport_rect().size.x/2)
		%Viewport.position.y = min(%Viewport.position.y, %Viewport/Camera2D.limit_bottom - get_viewport_rect().size.y/2)
		%Viewport.position.y = max(%Viewport.position.y, %Viewport/Camera2D.limit_top + get_viewport_rect().size.y/2)