mirror of
https://github.com/Relintai/GraphicsEditor.git
synced 2025-05-07 19:11:37 +02:00
zoom behavior tweaked
This commit is contained in:
parent
3b71355e7d
commit
fee893e07d
@ -33,6 +33,7 @@ var _middle_mouse_pressed_pos = null
|
|||||||
var _middle_mouse_pressed_start_pos = null
|
var _middle_mouse_pressed_start_pos = null
|
||||||
var _left_mouse_pressed_start_pos = Vector2()
|
var _left_mouse_pressed_start_pos = Vector2()
|
||||||
var _previous_tool
|
var _previous_tool
|
||||||
|
var brush_mode
|
||||||
|
|
||||||
var _layer_button_ref = {}
|
var _layer_button_ref = {}
|
||||||
|
|
||||||
@ -56,6 +57,20 @@ var _current_action
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var mouse_position = Vector2()
|
||||||
|
var canvas_position = Vector2()
|
||||||
|
var canvas_mouse_position = Vector2()
|
||||||
|
var cell_mouse_position = Vector2()
|
||||||
|
var cell_color = Color()
|
||||||
|
|
||||||
|
var last_mouse_position = Vector2()
|
||||||
|
var last_canvas_position = Vector2()
|
||||||
|
var last_canvas_mouse_position = Vector2()
|
||||||
|
var last_cell_mouse_position = Vector2()
|
||||||
|
var last_cell_color = Color()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
func _enter_tree():
|
func _enter_tree():
|
||||||
#--------------------
|
#--------------------
|
||||||
#Setup nodes
|
#Setup nodes
|
||||||
@ -123,22 +138,6 @@ func _input(event):
|
|||||||
set_brush(_previous_tool)
|
set_brush(_previous_tool)
|
||||||
|
|
||||||
|
|
||||||
var brush_mode
|
|
||||||
|
|
||||||
var mouse_position = Vector2()
|
|
||||||
var canvas_position = Vector2()
|
|
||||||
var canvas_mouse_position = Vector2()
|
|
||||||
var cell_mouse_position = Vector2()
|
|
||||||
var cell_color = Color()
|
|
||||||
|
|
||||||
var last_mouse_position = Vector2()
|
|
||||||
var last_canvas_position = Vector2()
|
|
||||||
var last_canvas_mouse_position = Vector2()
|
|
||||||
var last_cell_mouse_position = Vector2()
|
|
||||||
var last_cell_color = Color()
|
|
||||||
|
|
||||||
|
|
||||||
# warning-ignore:unused_argument
|
|
||||||
func _process(delta):
|
func _process(delta):
|
||||||
if not mouse_on_top or not mouse_in_region:
|
if not mouse_on_top or not mouse_in_region:
|
||||||
return
|
return
|
||||||
@ -176,11 +175,6 @@ func _process(delta):
|
|||||||
paint_canvas.tool_layer.clear()
|
paint_canvas.tool_layer.clear()
|
||||||
paint_canvas.tool_layer.update_texture()
|
paint_canvas.tool_layer.update_texture()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#Render the highlighting stuff
|
|
||||||
|
|
||||||
|
|
||||||
#Canvas Shift Moving
|
#Canvas Shift Moving
|
||||||
if not mouse_position == last_mouse_position:
|
if not mouse_position == last_mouse_position:
|
||||||
if paint_canvas.has_focus():
|
if paint_canvas.has_focus():
|
||||||
@ -221,19 +215,21 @@ func _handle_zoom(event):
|
|||||||
return
|
return
|
||||||
if event.is_pressed():
|
if event.is_pressed():
|
||||||
if event.button_index == BUTTON_WHEEL_UP:
|
if event.button_index == BUTTON_WHEEL_UP:
|
||||||
paint_canvas.set_pixel_size(min(paint_canvas.pixel_size * 2, max_zoom_in))
|
var px = min(paint_canvas.pixel_size * 2, max_zoom_in)
|
||||||
|
if px == paint_canvas.pixel_size:
|
||||||
return
|
return
|
||||||
if paint_canvas.pixel_size != max_zoom_in:
|
paint_canvas.set_pixel_size(px)
|
||||||
paint_canvas.rect_global_position -= Vector2(
|
paint_canvas.rect_position -= paint_canvas.get_local_mouse_position()
|
||||||
paint_canvas.canvas_width / 2,
|
paint_canvas.rect_position.x = clamp(paint_canvas.rect_position.x, -paint_canvas.rect_size.x * 0.8, rect_size.x)
|
||||||
paint_canvas.canvas_height / 2)
|
paint_canvas.rect_position.y = clamp(paint_canvas.rect_position.y, -paint_canvas.rect_size.y * 0.8, rect_size.y)
|
||||||
elif event.button_index == BUTTON_WHEEL_DOWN:
|
elif event.button_index == BUTTON_WHEEL_DOWN:
|
||||||
paint_canvas.set_pixel_size(max(paint_canvas.pixel_size / 2.0, max_zoom_out))
|
var px = max(paint_canvas.pixel_size / 2.0, max_zoom_out)
|
||||||
|
if px == paint_canvas.pixel_size:
|
||||||
return
|
return
|
||||||
if paint_canvas.pixel_size != max_zoom_out:
|
paint_canvas.set_pixel_size(px)
|
||||||
paint_canvas.rect_global_position += Vector2(
|
paint_canvas.rect_position += paint_canvas.get_local_mouse_position() / 2
|
||||||
paint_canvas.canvas_width / 2,
|
paint_canvas.rect_position.x = clamp(paint_canvas.rect_position.x, -paint_canvas.rect_size.x * 0.8, rect_size.x)
|
||||||
paint_canvas.canvas_height / 2)
|
paint_canvas.rect_position.y = clamp(paint_canvas.rect_position.y, -paint_canvas.rect_size.y * 0.8, rect_size.y)
|
||||||
|
|
||||||
|
|
||||||
func _reset_cut_tool():
|
func _reset_cut_tool():
|
||||||
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user