Updated custom tool cursors & changed rectangle selection tool

- Also fixed a small translation bug with the menu items, for real this time
- Fixed a bug with the brush color not being updated when using the custom color picker tool
- The pixel indicators only appear for Pencil, Eraser and LightenDarken tools
- Small UI margin changes.
This commit is contained in:
OverloadedOrama 2019-12-11 01:00:26 +02:00
parent 1bd8ec4ae0
commit 719d29526f
10 changed files with 84 additions and 65 deletions

View file

@ -241,8 +241,10 @@ func _process(delta : float) -> void:
var pixel_color : Color = layers[current_layer_index][0].get_pixelv(mouse_pos)
if current_mouse_button == "left_mouse":
Global.left_color_picker.color = pixel_color
Global.update_left_custom_brush()
elif current_mouse_button == "right_mouse":
Global.right_color_picker.color = pixel_color
Global.update_right_custom_brush()
if !is_making_line:
previous_mouse_pos = mouse_pos
@ -408,9 +410,10 @@ func _draw() -> void:
mouse_pos = mouse_pos.floor()
if Global.left_square_indicator_visible and Global.can_draw:
if Global.current_left_brush_type == Global.BRUSH_TYPES.PIXEL:
var start_pos_x = mouse_pos.x - (Global.left_brush_size >> 1)
var start_pos_y = mouse_pos.y - (Global.left_brush_size >> 1)
draw_rect(Rect2(start_pos_x, start_pos_y, Global.left_brush_size, Global.left_brush_size), Color.blue, false)
if Global.current_left_tool == "Pencil" || Global.current_left_tool == "Eraser" || Global.current_left_tool == "LightenDarken":
var start_pos_x = mouse_pos.x - (Global.left_brush_size >> 1)
var start_pos_y = mouse_pos.y - (Global.left_brush_size >> 1)
draw_rect(Rect2(start_pos_x, start_pos_y, Global.left_brush_size, Global.left_brush_size), Color.blue, false)
else:
if Global.current_left_tool == "Pencil" || Global.current_left_tool == "Eraser":
var custom_brush_size = Global.custom_left_brush_image.get_size() - Vector2.ONE
@ -419,9 +422,10 @@ func _draw() -> void:
if Global.right_square_indicator_visible and Global.can_draw:
if Global.current_right_brush_type == Global.BRUSH_TYPES.PIXEL:
var start_pos_x = mouse_pos.x - (Global.right_brush_size >> 1)
var start_pos_y = mouse_pos.y - (Global.right_brush_size >> 1)
draw_rect(Rect2(start_pos_x, start_pos_y, Global.right_brush_size, Global.right_brush_size), Color.red, false)
if Global.current_right_tool == "Pencil" || Global.current_right_tool == "Eraser" || Global.current_left_tool == "LightenDarken":
var start_pos_x = mouse_pos.x - (Global.right_brush_size >> 1)
var start_pos_y = mouse_pos.y - (Global.right_brush_size >> 1)
draw_rect(Rect2(start_pos_x, start_pos_y, Global.right_brush_size, Global.right_brush_size), Color.red, false)
else:
if Global.current_right_tool == "Pencil" || Global.current_right_tool == "Eraser":
var custom_brush_size = Global.custom_right_brush_image.get_size() - Vector2.ONE

View file

@ -24,7 +24,7 @@ func _ready() -> void:
# This property is only available in 3.2alpha or later, so use `set()` to fail gracefully if it doesn't exist.
OS.set("min_window_size", Vector2(1152, 648))
#Make sure locales are always sorted, in the same order
# Make sure locales are always sorted, in the same order
loaded_locales = TranslationServer.get_loaded_locales()
loaded_locales.sort()
@ -44,33 +44,33 @@ func _ready() -> void:
OS.window_size = config_cache.get_value("window", "size")
var file_menu_items := {
tr("New...") : KEY_MASK_CTRL + KEY_N,
tr("Open...") : KEY_MASK_CTRL + KEY_O,
tr("Save...") : KEY_MASK_CTRL + KEY_S,
tr("Save as...") : KEY_MASK_SHIFT + KEY_MASK_CTRL + KEY_S,
tr("Import PNG...") : KEY_MASK_CTRL + KEY_I,
tr("Export PNG...") : KEY_MASK_CTRL + KEY_E,
tr("Export PNG as...") : KEY_MASK_SHIFT + KEY_MASK_CTRL + KEY_E,
tr("Quit") : KEY_MASK_CTRL + KEY_Q
"New..." : KEY_MASK_CTRL + KEY_N,
"Open..." : KEY_MASK_CTRL + KEY_O,
"Save..." : KEY_MASK_CTRL + KEY_S,
"Save as..." : KEY_MASK_SHIFT + KEY_MASK_CTRL + KEY_S,
"Import PNG..." : KEY_MASK_CTRL + KEY_I,
"Export PNG..." : KEY_MASK_CTRL + KEY_E,
"Export PNG as..." : KEY_MASK_SHIFT + KEY_MASK_CTRL + KEY_E,
"Quit" : KEY_MASK_CTRL + KEY_Q
}
var edit_menu_items := {
tr("Undo") : KEY_MASK_CTRL + KEY_Z,
tr("Redo") : KEY_MASK_SHIFT + KEY_MASK_CTRL + KEY_Z,
tr("Scale Image") : 0,
tr("Crop Image") : 0,
tr("Clear Selection") : 0,
tr("Flip Horizontal") : KEY_MASK_SHIFT + KEY_H,
tr("Flip Vertical") : KEY_MASK_SHIFT + KEY_V,
tr("Preferences") : 0
"Undo" : KEY_MASK_CTRL + KEY_Z,
"Redo" : KEY_MASK_SHIFT + KEY_MASK_CTRL + KEY_Z,
"Scale Image" : 0,
"Crop Image" : 0,
"Clear Selection" : 0,
"Flip Horizontal" : KEY_MASK_SHIFT + KEY_H,
"Flip Vertical" : KEY_MASK_SHIFT + KEY_V,
"Preferences" : 0
}
var view_menu_items := {
tr("Tile Mode") : KEY_MASK_CTRL + KEY_T,
tr("Show Grid") : KEY_MASK_CTRL + KEY_G,
tr("Show Rulers") : KEY_MASK_CTRL + KEY_R,
tr("Show Guides") : KEY_MASK_CTRL + KEY_Y
"Tile Mode" : KEY_MASK_CTRL + KEY_T,
"Show Grid" : KEY_MASK_CTRL + KEY_G,
"Show Rulers" : KEY_MASK_CTRL + KEY_R,
"Show Guides" : KEY_MASK_CTRL + KEY_Y
}
var help_menu_items := {
tr("About Pixelorama") : 0
"About Pixelorama" : 0
}
# Load language
@ -164,9 +164,9 @@ func _ready() -> void:
Global.brushes_from_files = Global.custom_brushes.size()
func _input(event : InputEvent) -> void:
Global.left_cursor.position = get_global_mouse_position() + Vector2(-20, 20)
Global.left_cursor.position = get_global_mouse_position() + Vector2(-32, 32)
Global.left_cursor.texture = Global.left_cursor_tool_texture
Global.right_cursor.position = get_global_mouse_position() + Vector2(20, 20)
Global.right_cursor.position = get_global_mouse_position() + Vector2(32, 32)
Global.right_cursor.texture = Global.right_cursor_tool_texture
if event.is_action_pressed("toggle_fullscreen"):
OS.window_fullscreen = !OS.window_fullscreen

View file

@ -26,6 +26,11 @@ func _process(delta : float) -> void:
var current_layer_index := Global.canvas.current_layer_index
var layer : Image = Global.canvas.layers[current_layer_index][0]
if end_pos == start_pos:
Global.selection_rectangle.visible = false
else:
Global.selection_rectangle.visible = true
if point_in_rectangle(mouse_pos, polygon[0], polygon[2]) && Global.selected_pixels.size() > 0 && (Global.current_left_tool == "RectSelect" || Global.current_right_tool == "RectSelect"):
get_parent().get_parent().mouse_default_cursor_shape = Input.CURSOR_MOVE
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)