From 48e871586ca133e6008c95b64622b7eef09f247c Mon Sep 17 00:00:00 2001 From: OverloadedOrama <35376950+OverloadedOrama@users.noreply.github.com> Date: Thu, 9 Jan 2020 20:49:27 +0200 Subject: [PATCH] Added space for panning - Closes #110 --- Changelog.md | 5 +++-- Scripts/CameraMovement.gd | 4 ++-- Scripts/Canvas.gd | 9 ++++++++- Scripts/Dialogs/AboutDialog.gd | 1 + project.godot | 7 ++++++- 5 files changed, 20 insertions(+), 6 deletions(-) diff --git a/Changelog.md b/Changelog.md index d323eaef3..c0c6bc868 100644 --- a/Changelog.md +++ b/Changelog.md @@ -7,6 +7,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Added - Italian localization - thanks to Marco Galli! +- In addition to the middle mouse button, you can now use `Space` to pan around the canvas. ### Changed - More translatable strings, updates to Greek & Brazilian Portuguese (thanks to YeldhamDev) localizations. @@ -14,10 +15,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Added a VSplitContainer for Palettes and Layers. - Added a ScrollContainer for the palette buttons on the Edit Palette popup. - Made Palette .json files more readable, and made "comments" on top of the color data. -- THe grid options are now being updated realtime when they're being changed from the preferences. +- The grid options are now being updated realtime when they're being changed from the preferences. ### Fixed -- Crash that occured when trying to delete contents of a selection, that were outside the canvas. +- Fixed crash that occured when trying to delete contents of a selection, that were outside the canvas. - Fixed .gpl palettes not being imported correctly - Issue #112 - Fixed crash that occured when pressing the play buttons on the timeline, on Godot 3.2 - Issue #111 diff --git a/Scripts/CameraMovement.gd b/Scripts/CameraMovement.gd index 313894ad3..8094d6568 100644 --- a/Scripts/CameraMovement.gd +++ b/Scripts/CameraMovement.gd @@ -11,9 +11,9 @@ func _ready() -> void: func _input(event : InputEvent) -> void: var mouse_pos := viewport_container.get_local_mouse_position() var viewport_size := viewport_container.rect_size - if event.is_action_pressed("camera_drag"): + if event.is_action_pressed("camera_drag") || event.is_action_pressed("space"): drag = true - elif event.is_action_released("camera_drag"): + elif event.is_action_released("camera_drag") || event.is_action_released("space"): drag = false if Global.can_draw && Rect2(Vector2.ZERO, viewport_size).has_point(mouse_pos): diff --git a/Scripts/Canvas.gd b/Scripts/Canvas.gd index 767e46f6d..005a27144 100644 --- a/Scripts/Canvas.gd +++ b/Scripts/Canvas.gd @@ -91,11 +91,18 @@ func _input(event : InputEvent) -> void: else: return + current_pixel = get_local_mouse_position() + location if Global.current_frame == frame && Global.has_focus: update() + # We don't want to draw when pressing space, because it's used for panning + if Input.is_action_pressed("space"): + previous_mouse_pos = current_pixel + previous_mouse_pos.x = clamp(previous_mouse_pos.x, location.x, location.x + size.x) + previous_mouse_pos.y = clamp(previous_mouse_pos.y, location.y, location.y + size.y) + return + sprite_changed_this_frame = false - current_pixel = get_local_mouse_position() + location var mouse_pos := current_pixel var mouse_pos_floored := mouse_pos.floor() var mouse_pos_ceiled := mouse_pos.ceil() diff --git a/Scripts/Dialogs/AboutDialog.gd b/Scripts/Dialogs/AboutDialog.gd index bda697906..1f98c97c8 100644 --- a/Scripts/Dialogs/AboutDialog.gd +++ b/Scripts/Dialogs/AboutDialog.gd @@ -24,6 +24,7 @@ func _ready() -> void: contributors.create_item(contributor_root).set_text(0, " Subhang Nanduri") contributors.create_item(contributor_root).set_text(0, " danielnaoexiste") contributors.create_item(contributor_root).set_text(0, " huskee") + contributors.create_item(contributor_root).set_text(0, " Gaarco") var donors_root := donors.create_item() donors.create_item(donors_root).set_text(0, " pcmxms") diff --git a/project.godot b/project.godot index 7debd2bcc..adeb14e99 100644 --- a/project.godot +++ b/project.godot @@ -45,12 +45,12 @@ _global_script_class_icons={ [application] config/name="Pixelorama" -config/description="A free & open-source 2D sprite editor" run/main_scene="res://Main.tscn" run/low_processor_mode=true boot_splash/image="res://splash.png" boot_splash/bg_color=Color( 0.145098, 0.145098, 0.164706, 1 ) config/icon="res://icon.png" +config/description="A free & open-source 2D sprite editor" config/Version="v0.6.1" [autoload] @@ -214,6 +214,11 @@ delete={ "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777224,"unicode":0,"echo":false,"script":null) ] } +space={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null) + ] +} [locale]