@@ -293,7 +293,7 @@ func _gui_input(event) -> void:
293293 scroll_offset .y += 0.5 * size .y
294294 accept_event ()
295295 KEY_F :
296- color_comment_nodes ()
296+ colorize_nodes ()
297297 KEY_G :
298298 if not get_selected_nodes ().is_empty ():
299299 has_grab = true
@@ -1326,13 +1326,16 @@ func undoredo_command(command : Dictionary) -> void:
13261326 if has_node ("node_" + g .name ):
13271327 var node = get_node ("node_" + g .name )
13281328 node .update_node ()
1329- "comment_color_change " :
1329+ "node_color_change " :
13301330 var g = get_node_from_hier_name (command .node )
13311331 g .color = command .color
13321332 if g .get_parent () == generator :
13331333 if has_node ("node_" + g .name ):
13341334 var node = get_node ("node_" + g .name )
1335- node .update_node ()
1335+ if node is MMGraphComment :
1336+ node .update_node ()
1337+ elif node is MMGraphPortal :
1338+ node .queue_redraw ()
13361339 _ :
13371340 print ("Unknown undo/redo command:" )
13381341 print (command )
@@ -1827,33 +1830,43 @@ func _get_connection_line(from : Vector2, to : Vector2) -> PackedVector2Array:
18271830 _ :
18281831 return points
18291832
1830- func color_comment_nodes () -> void :
1831- var comments := get_children ().filter (
1832- func (n ): return (n is MMGraphComment and n .selected ))
1833- if not comments .is_empty ():
1834- undoredo .start_group ()
1835- var picker : PopupPanel = preload ("res://material_maker/widgets/color_picker_popup/color_picker_popup.tscn" ).instantiate ()
1836- picker .hide ()
1837- add_child (picker )
1838- var color_picker : ColorPicker = picker .get_node ("ColorPicker" )
1839- for node in comments :
1840- color_picker .color_changed .connect (node .set_color )
1841- color_picker .color = node .generator .color
1842- var csf = get_window ().content_scale_factor
1843- picker .about_to_popup .connect (func ():
1844- if mm_globals .has_config ("color_picker_color_mode" ):
1845- color_picker .color_mode = mm_globals .get_config ("color_picker_color_mode" )
1846- if mm_globals .has_config ("color_picker_shape" ):
1847- color_picker .picker_shape = mm_globals .get_config ("color_picker_shape" ))
1848- picker .popup_hide .connect (func ():
1849- mm_globals .set_config ("color_picker_color_mode" , color_picker .color_mode )
1850- mm_globals .set_config ("color_picker_shape" , color_picker .picker_shape ))
1851- picker .content_scale_factor = csf
1852- picker .min_size = picker .get_contents_minimum_size () * csf
1853- picker .position = get_screen_position () + get_local_mouse_position () * csf
1854- picker .popup_hide .connect (picker .queue_free )
1855- picker .popup_hide .connect (undoredo .end_group )
1856- picker .popup ()
1833+ func colorize_nodes () -> void :
1834+ var nodes : Array [GraphElement ]
1835+ for n in get_children ():
1836+ if (n is MMGraphPortal or n is MMGraphComment ) and n .selected :
1837+ nodes .push_back (n )
1838+ if nodes .is_empty ():
1839+ return
1840+ undoredo .start_group ()
1841+
1842+ var picker = ColorPicker .new ()
1843+ var popup : PopupPanel = PopupPanel .new ()
1844+ popup .add_child (picker )
1845+ popup .hide ()
1846+ add_child (popup )
1847+ picker .edit_alpha = false
1848+ picker .edit_intensity = false
1849+
1850+ var csf = get_window ().content_scale_factor
1851+ popup .about_to_popup .connect (func () -> void :
1852+ if mm_globals .has_config ("color_picker_color_mode" ):
1853+ picker .color_mode = mm_globals .get_config ("color_picker_color_mode" )
1854+ if mm_globals .has_config ("color_picker_shape" ):
1855+ picker .picker_shape = mm_globals .get_config ("color_picker_shape" ))
1856+ popup .popup_hide .connect (func () -> void :
1857+ mm_globals .set_config ("color_picker_color_mode" , picker .color_mode )
1858+ mm_globals .set_config ("color_picker_shape" , picker .picker_shape ))
1859+
1860+ popup .content_scale_factor = csf
1861+ popup .min_size = popup .get_contents_minimum_size () * csf
1862+ popup .position = get_screen_position () + get_local_mouse_position () * csf
1863+
1864+ picker .color = nodes [0 ].generator .color
1865+ for node in nodes :
1866+ picker .color_changed .connect (node .set_color )
1867+ popup .popup_hide .connect (undoredo .end_group )
1868+ popup .popup_hide .connect (popup .queue_free )
1869+ popup .popup ()
18571870
18581871func _on_resized () -> void :
18591872 $ GraphUI .size = Vector2 .ZERO
0 commit comments