Even more Global left/right variables became arrays

ColorAndToolOptions has now the same code for left and right tool options, with more similar refactoring coming soon to places like Canvas and DrawingAlgos
This commit is contained in:
OverloadedOrama 2020-06-01 00:44:53 +03:00
parent 15ef00bf46
commit 9b4956b4f1
9 changed files with 141 additions and 213 deletions

View file

@ -38,7 +38,7 @@ func draw_brush(sprite : Image, pos : Vector2, color : Color, current_mouse_butt
elif current_action == Global.Tools.ERASER: # This is not working
color.a *= (1.0 - pen_pressure)
if current_mouse_button == Global.Mouse_Button.LEFT:
brush_size = Global.left_brush_size
brush_size = Global.brush_sizes[0]
brush_type = Global.current_brush_types[0]
brush_index = Global.custom_brush_indexes[0]
if brush_type != Global.Brush_Types.RANDOM_FILE:
@ -53,14 +53,14 @@ func draw_brush(sprite : Image, pos : Vector2, color : Color, current_mouse_butt
custom_brush_image = Global.blend_image_with_color(custom_brush_image, color, Global.interpolate_spinboxes[0].value / 100)
custom_brush_image.lock()
horizontal_mirror = Global.left_horizontal_mirror
vertical_mirror = Global.left_vertical_mirror
pixel_perfect = Global.left_pixel_perfect
ld = Global.left_ld
ld_amount = Global.left_ld_amount
horizontal_mirror = Global.horizontal_mirror[0]
vertical_mirror = Global.vertical_mirror[0]
pixel_perfect = Global.pixel_perfect[0]
ld = Global.ld_modes[0]
ld_amount = Global.ld_amounts[0]
elif current_mouse_button == Global.Mouse_Button.RIGHT:
brush_size = Global.right_brush_size
brush_size = Global.brush_sizes[1]
brush_type = Global.current_brush_types[1]
brush_index = Global.custom_brush_indexes[1]
if brush_type != Global.Brush_Types.RANDOM_FILE:
@ -75,11 +75,11 @@ func draw_brush(sprite : Image, pos : Vector2, color : Color, current_mouse_butt
custom_brush_image = Global.blend_image_with_color(custom_brush_image, color, Global.interpolate_spinboxes[1].value / 100)
custom_brush_image.lock()
horizontal_mirror = Global.right_horizontal_mirror
vertical_mirror = Global.right_vertical_mirror
pixel_perfect = Global.right_pixel_perfect
ld = Global.right_ld
ld_amount = Global.right_ld_amount
horizontal_mirror = Global.horizontal_mirror[1]
vertical_mirror = Global.vertical_mirror[1]
pixel_perfect = Global.pixel_perfect[1]
ld = Global.ld_modes[1]
ld_amount = Global.ld_amounts[1]
var start_pos_x
var start_pos_y

View file

@ -7,6 +7,10 @@ enum Brush_Types {PIXEL, CIRCLE, FILLED_CIRCLE, FILE, RANDOM_FILE, CUSTOM}
enum Direction {UP, DOWN, LEFT, RIGHT}
enum Mouse_Button {LEFT, RIGHT}
enum Tools {PENCIL, ERASER, BUCKET, LIGHTENDARKEN, RECTSELECT, COLORPICKER, ZOOM}
enum Fill_Area {SAME_COLOR_AREA, SAME_COLOR_PIXELS}
enum Fill_With {COLOR, PATTERN}
enum Lighten_Darken_Mode {LIGHTEN, DARKEN}
enum Zoom_Mode {ZOOM_IN, ZOOM_OUT}
# Stuff for arrowkey-based canvas movements nyaa ^.^
const low_speed_move_rate := 150.0
@ -69,43 +73,26 @@ var autosave_interval := 5.0
var enable_autosave := true
# Tools & options
var current_left_tool : int = Tools.PENCIL
var current_right_tool :int = Tools.ERASER
var current_tools := [Tools.PENCIL, Tools.ERASER]
var show_left_tool_icon := true
var show_right_tool_icon := true
var left_square_indicator_visible := true
var right_square_indicator_visible := false
# 0 for area of same color, 1 for all pixels of the same color
var left_fill_area := 0
var right_fill_area := 0
var fill_areas := [Fill_Area.SAME_COLOR_AREA, Fill_Area.SAME_COLOR_AREA]
var fill_with := [Fill_With.COLOR, Fill_With.COLOR]
var fill_pattern_offsets := [Vector2.ZERO, Vector2.ZERO]
var left_fill_with := 0
var right_fill_with := 0
var ld_modes := [Lighten_Darken_Mode.LIGHTEN, Lighten_Darken_Mode.LIGHTEN]
var ld_amounts := [0.1, 0.1]
var left_fill_pattern_offset := Vector2.ZERO
var right_fill_pattern_offset := Vector2.ZERO
var color_picker_for := [Mouse_Button.LEFT, Mouse_Button.RIGHT]
# 0 for lighten, 1 for darken
var left_ld := 0
var right_ld := 0
var left_ld_amount := 0.1
var right_ld_amount := 0.1
var zoom_modes := [Zoom_Mode.ZOOM_IN, Zoom_Mode.ZOOM_OUT]
var left_color_picker_for : int = Mouse_Button.LEFT
var right_color_picker_for : int = Mouse_Button.RIGHT
# 0 for zoom in, 1 for zoom out
var left_zoom_mode := 0
var right_zoom_mode := 1
var left_horizontal_mirror := false
var left_vertical_mirror := false
var right_horizontal_mirror := false
var right_vertical_mirror := false
var left_pixel_perfect := false
var right_pixel_perfect := false
var horizontal_mirror := [false, false]
var vertical_mirror := [false, false]
var pixel_perfect := [false, false]
# View menu options
var tile_mode := false
@ -121,9 +108,8 @@ var onion_skinning_future_rate := 1.0
var onion_skinning_blue_red := false
# Brushes
var left_brush_size := 1
var right_brush_size := 1
var current_brush_types := []
var brush_sizes := [1, 1]
var current_brush_types := [Brush_Types.PIXEL, Brush_Types.PIXEL]
var brush_type_window_position : int = Mouse_Button.LEFT
var left_circle_points := []
@ -131,14 +117,14 @@ var right_circle_points := []
var brushes_from_files := 0
var custom_brushes := []
var custom_brush_indexes := []
var custom_brush_images := []
var custom_brush_textures := []
var custom_brush_indexes := [-1, -1]
var custom_brush_images := [Image.new(), Image.new()]
var custom_brush_textures := [ImageTexture.new(), ImageTexture.new()]
# Patterns
var patterns := []
var pattern_window_position : int = Mouse_Button.LEFT
var pattern_images := []
var pattern_images := [Image.new(), Image.new()]
# Palettes
var palettes := {}
@ -257,16 +243,6 @@ func _ready() -> void:
undo_redo = UndoRedo.new()
image_clipboard = Image.new()
current_brush_types.append(Brush_Types.PIXEL)
current_brush_types.append(Brush_Types.PIXEL)
custom_brush_indexes.append(-1)
custom_brush_indexes.append(-1)
custom_brush_images.append(Image.new())
custom_brush_images.append(Image.new())
custom_brush_textures.append(ImageTexture.new())
custom_brush_textures.append(ImageTexture.new())
pattern_images.append(Image.new())
pattern_images.append(Image.new())
var root = get_tree().get_root()
control = find_node_by_name(root, "Control")
@ -881,17 +857,19 @@ func update_custom_brush(mouse_button : int) -> void:
var pixel := Image.new()
pixel = preload("res://assets/graphics/circle_9x9.png")
brush_type_buttons[mouse_button].get_child(0).texture.create_from_image(pixel, 0)
left_circle_points = plot_circle(left_brush_size)
left_circle_points = plot_circle(brush_sizes[0])
right_circle_points = plot_circle(brush_sizes[1])
elif current_brush_types[mouse_button] == Brush_Types.FILLED_CIRCLE:
var pixel := Image.new()
pixel = preload("res://assets/graphics/circle_filled_9x9.png")
brush_type_buttons[mouse_button].get_child(0).texture.create_from_image(pixel, 0)
left_circle_points = plot_circle(left_brush_size)
left_circle_points = plot_circle(brush_sizes[0])
right_circle_points = plot_circle(brush_sizes[1])
else:
var custom_brush := Image.new()
custom_brush.copy_from(custom_brushes[custom_brush_indexes[mouse_button]])
var custom_brush_size = custom_brush.get_size()
custom_brush.resize(custom_brush_size.x * left_brush_size, custom_brush_size.y * left_brush_size, Image.INTERPOLATE_NEAREST)
custom_brush.resize(custom_brush_size.x * brush_sizes[mouse_button], custom_brush_size.y * brush_sizes[mouse_button], Image.INTERPOLATE_NEAREST)
custom_brush_images[mouse_button] = blend_image_with_color(custom_brush, color_pickers[mouse_button].color, interpolate_spinboxes[mouse_button].value / 100)
custom_brush_textures[mouse_button].create_from_image(custom_brush_images[mouse_button], 0)

View file

@ -128,10 +128,10 @@ func open_pxo_file(path : String, untitled_backup : bool = false) -> void:
# Load tool options
Global.color_pickers[0].color = file.get_var()
Global.color_pickers[1].color = file.get_var()
Global.left_brush_size = file.get_8()
Global.brush_size_edits[0].value = Global.left_brush_size
Global.right_brush_size = file.get_8()
Global.brush_size_edits[1].value = Global.right_brush_size
Global.brush_sizes[0] = file.get_8()
Global.brush_size_edits[0].value = Global.brush_sizes[0]
Global.brush_sizes[1] = file.get_8()
Global.brush_size_edits[1].value = Global.brush_sizes[1]
if file_major_version == 0 and file_minor_version < 7:
var left_palette = file.get_var()
var right_palette = file.get_var()
@ -224,8 +224,8 @@ func save_pxo_file(path : String, autosave : bool) -> void:
# Save tool options
var left_color : Color = Global.color_pickers[0].color
var right_color : Color = Global.color_pickers[1].color
var left_brush_size : int = Global.left_brush_size
var right_brush_size : int = Global.right_brush_size
var left_brush_size : int = Global.brush_sizes[0]
var right_brush_size : int = Global.brush_sizes[1]
file.store_var(left_color)
file.store_var(right_color)
file.store_8(left_brush_size)