File tree Expand file tree Collapse file tree 1 file changed +15
-0
lines changed
material_maker/widgets/pixels_edit Expand file tree Collapse file tree 1 file changed +15
-0
lines changed Original file line number Diff line number Diff line change @@ -4,6 +4,8 @@ extends "res://material_maker/widgets/pixels_edit/pixels_view.gd"
44
55var current_color : int = - 1
66
7+ var last_mouse_pos : Vector2
8+
79@onready var menu_bar : Control = $ PixelMenu
810@onready var colors : Control = % Colors
911
@@ -72,9 +74,22 @@ func draw_pixel() -> void:
7274 queue_redraw ()
7375 self .value_changed .emit (pixels )
7476
77+ func draw_pixel_line () -> void :
78+ var from : Vector2 = reverse_transform_point (last_mouse_pos )
79+ var to : Vector2 = reverse_transform_point (get_local_mouse_position ())
80+ var pixel_from : Vector2i = Vector2i (Vector2 (pixels .size ) * from )
81+ var pixel_to : Vector2i = Vector2i (Vector2 (pixels .size ) * to )
82+ for pixel : Vector2i in Geometry2D .bresenham_line (pixel_from , pixel_to ):
83+ pixels .set_color_index (pixel .x , pixel .y , current_color )
84+ queue_redraw ()
85+ self .value_changed .emit (pixels )
86+
7587func _on_PixelsEditor_gui_input (event : InputEvent ):
7688 if event is InputEventMouseButton :
7789 if event .button_index == MOUSE_BUTTON_LEFT and event .pressed :
90+ if event .shift_pressed and last_mouse_pos :
91+ draw_pixel_line ()
92+ last_mouse_pos = get_local_mouse_position ()
7893 draw_pixel ()
7994 return
8095 elif event is InputEventMouseMotion :
You can’t perform that action at this time.
0 commit comments