diff options
Diffstat (limited to 'Main.gd')
-rw-r--r-- | Main.gd | 23 |
1 files changed, 17 insertions, 6 deletions
@@ -1,6 +1,7 @@ #warning-ignore-all:return_value_discarded extends Node2D +var moved : int = 0 var drag_map : bool = false onready var UI : Control = $CanvasLayer/HBOX/UI @@ -9,6 +10,8 @@ onready var Camera : Camera2D = $CanvasLayer/HBOX/ViewportContainer/Viewport/Cam func _ready(): UI.get_node("rotate").connect("pressed", self, "on_rotate") + UI.get_node("zin").connect("pressed", self, "on_zoom", [true]) + UI.get_node("zout").connect("pressed", self, "on_zoom", [false]) UI.get_node("LOS").connect("pressed", self, "on_toggle") UI.get_node("Move").connect("pressed", self, "on_toggle") Map.connect("hex_touched", self, "on_hex_touched") @@ -23,6 +26,9 @@ func on_rotate() -> void: Map.rotate_map() on_viewport_resized() +func on_zoom(b : bool) -> void: + Camera.update_camera(0, 0, -0.05 if b else 0.05) + func on_toggle() -> void: Map.set_mode(UI.get_node("LOS").pressed, UI.get_node("Move").pressed) @@ -35,17 +41,22 @@ func _unhandled_input(event : InputEvent) -> void: if drag_map: var dv : Vector2 = event.relative * Camera.zoom Camera.update_camera(-dv.x, -dv.y, 0) + moved += 1 else: Map.on_mouse_move() elif event is InputEventMouseButton: - if event.button_index == 4: - Camera.update_camera(0, 0, -0.05) - elif event.button_index == 5: - Camera.update_camera(0, 0, +0.05) + if event.button_index == 1: + if moved < 5: + drag_map = Map.on_click(event.pressed) + else: + drag_map = false + moved = 0 elif event.button_index == 3: drag_map = event.pressed - elif event.button_index == 1: - Map.on_click(event.pressed) + elif event.button_index == 4: + on_zoom(true) + elif event.button_index == 5: + on_zoom(false) elif event is InputEventKey: if event.scancode == KEY_ESCAPE: get_tree().quit() |